#Testing

5 Followers · 133 Posts

Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.

Question Evgeny Shvarov · May 13, 2023

Hi folks!

Those who actively use unittests with ObjectScript know that they are methods of instance but not classmethods.

Sometimes this is not very convenient. What I do now if I face that some test method fails I COPY(!) this method somewhere else as classmethod and run/debug it.

Is there a handy way to call the particular unittest method in terminal?  And what is more important, a handy way to debug the test method?

Why do we have unittest methods as instance methods? 

25
0 837
Question Chris Fine · Mar 8, 2018

hi, new here, and new to cache and deepsee.

i've been trying to setup a copy of our production server so we can use it for testing/development.

i did a full  backup. moved it to the new server.  ran the DBREST command.  got it to restore but seems like permissions get all messed up. and it just generates a bunch of errors.

is there an easier/better way of doing this?

13
0 797
Question Scott Roth · Jul 8, 2022

We are upgrading from Health Connect 2018.1.3 to IRIS Health Connect 2022.1, and one thing that we are particularly hesitant about is if our Business Rules will work in the new version.

I am trying to come up with a testing process for bulk testing our rules, and wanted to know if this could be done programmatically instead of having to modify all the Business Operations to have them write the HL7 data to a file. I caught Orlando Health's presentation at GS2022 but I am not sure that will work for my team.

10
3 806
Question Zoltán Mencser · Mar 24, 2022

Hello everyone!

When running the command 

do ##class(TestCoverage.Manager).RunTest(,"/nodelete",.userParams)

I now get the following error.

ERROR #5002 : ObjectScript error:  <FUNCTION>zStart+45^%Monitor.System.LineByLine.1  <<==== **FAILED** TestCoverage.Manager:OnBeforeAllTests:::

These tests run fine in Studio.

Also the TestCoverage works fine on all the other namespaces. So far i'm experienceing this problem on this 1 namespace.

The solution of stopping the LinebyLine monitor doesn't help like in the case of ERROR #6060

Can someone please point me in the right direction?

9
0 835
Question James Rutledge · Apr 25, 2024

I'm trying to learn M programing for an Epic db class prerequisite. They said to download the IRIS Studio software to do the testing. I'm having a very difficult time finding information the language. I'm trying to run some examples that Epic has provided (like in below) but the compiler complains that it isn't valid. Of course, it doesn't tell you why it isn't valid.

r !,"Enter the hour: ",hr  
 r !,"Enter the minute: ",min 
 r !,"Enter the second: ",sec 
 s Mtime=$$ConvertToMTime(hr,min,sec)
 w !

8
0 333
Question Michael Davidovich · Aug 12, 2022

Does anyone have experience with CircleCI or really any automation tool using %UnitTest?

I have built my app and ran my unit test in a Docker container automated by CircleCI.  However, after many of the tests failed I see:

How do you halt out of the IRIS session and return an exit code to the shell?

I have a script in my repo that I pass into IRIS after CircleCI does the code checkout

iris session IRIS < inFile

Am I trying to approach this the wrong way?  Should I be writing test output to a file or something?

8
0 590
Question Chris Marais · Nov 15, 2021

When running the command 

do ##class(TestCoverage.Manager).RunTest(,"/nodelete",.userParams)

I now get the following error. these tests used to run fine.

LogStateStatus:0:TestCoverage.Manager:OnBeforeAllTests:ERROR #6060: Somebody else is using the Monitor. <<==== **FAILED**

Can someone please point me in the right direction?

7
0 498
Question Paras Batheja · Aug 17, 2020

Hi Developers 

Is there any way that we can pass the values to the read prompts via cache routine.

For example, we have a couple of reports/routine in our system which accepts some inputs and after taking the inputs it generates some data. Right now it has proper UI and where User enters the value and in routines we have Read statements which accepts those inputs for further processing.

7
0 651
Question Werner Beukes · Jan 20, 2021

I need to do some nifty string manipulation on a source property. I will not be able to do it with the functions available(with the knowledge that I have of what is available). Could I call a ClassMethod to do this for me? This is what I want to do: The source property is "myemail@myemaildomain.co.uk". I need to add the text "test" to the beginning of that string. "testmyemail@myemaildomain.co.uk". That should be simple enough, but then I have to do this as well, "testmyemail@myemaildomaintest.co.uk". Note the additional "test" added after "myemaildomain".

7
0 321
Question Mihai Radu · Aug 31, 2017

I am trying to capture the write of a method to test the response in an unit test. I know everything works because one of my colleagues ran the code and did not froze on his machine.

I don't what is the cause of the freeze. I know that at line Use $io::("^"_$ZNAME) it stopes because i have put some write functions after every line in WriteCapture method and i only saw the first write function in terminal

I also used debug and in this case it didn't froze

PS: forgot to put the status in the XECUTE (vstrCommand , .

7
0 621
Question Evgeny Shvarov · Feb 21, 2025

Hi folks!

I'm building a very simple REST API.

But before testing it via a Web Server what I want to make sure that REST API methods work in principle.

Is it an easy way to "fake" the web-server request and get a result e.g. of the method with signature like that?

ClassMethod GetAllRecords(pRequest As %CSP.Request, pResponse As %CSP.Response) As %Status

e.g. calling it in Terminal?

6
0 279
Question Jimmy Christian · Feb 8, 2019

Hello ,

I have a class Method  ClassMethod SearchOBXFlag(pSourceMsg As EnsLib.HL7.Message, Identifier As %String) As %String

How can i test this method from terminal or from portal or studio.  In Terminal i am not able to pass a HL7 message to the method since it terminates after segment terminator. It should be great if i can pass a local file with the hl7 message to the function instead.

Any help will be appreciated how to pass a hl7 message to this function inorder to test.

Thanks

Jimmy Christian.

6
0 664
Question Rosti Zacharias · Sep 23, 2018

Hi,

Interested in testing the Eclipse / Atelier on my Mac with 10.13.6 High Sierra, I installed both and had a go at connecting to my Cache Server. It offers Address & Port and login ID and Password.

No matter what I gave it, it cannot connect, saying Server not found.

The Server is a virtual Server running Windows 12 Server on a dedicated IP address, to which I can connect correctly using Remote Desktop, I can Ping  the IP so all looks good, except Eclipse cannot find it.

Any hints would be appreciated.

Thanks,

Rosti.

5
0 535
Question Karl Kirk · Mar 1, 2018

Are there any BDD testing automation implementations within Mumps/Cache Objects already in existence?
We are looking at using Cucumber for our Java regression test automation and would like to use similar feature file testing with the Cache code.


Looking to use something existing before building it.
Regards,
-Karl

5
1 1098
Question Tiago Ribeiro · Feb 25, 2016

Good morning people.
The use of TDD is currently being reference for software delivery more confiabilitade and quality.

At the company I work developing web applications , we create tests for method class in a deteminado package and running the steps that the documentation recommends:

1 export the tests classes to a predefined folder.
2- And running the test ( D ## class (% UnitTest.Manager ) .RunTest (,"/nodelete" )

It is a lot of work to do the export and run these tests would have a resource that we could only run the tests without the need for export ?

5
0 859
Question Rubens Silva · Jul 12, 2017

Greetings, can someone give me some help? I'm trying to use job for a instance method, as it's described here but...
Anyway, I have a method like this:

Method PrepareInstance(path)
{
  set ..Tool = ##class(Tool).%New(path)
  do $System.Event.Signal($zparent)
}

That is being called like this:

Method TestPurge() As %Status
{
  job ..PrepareInstance(..GetTestDirectory("../fixtures/_/dummy-project"))::10
  set msg = $System.Event.Wait("",10)
}

But it fails because:

<METHOD DOES NOT EXIST>zTestPurge+1^UnitTest.Tool.1 *PrepareInstance

5
0 528
Question Florence Cureau · Aug 26, 2016

Hello everyone,

Does anyone know how to create integration tests using the Cache unit test framework in order to test an Ensemble production?

For example, what would be the best way to create automated tests for a BPL that calls multiple business operations (SQL, WebService ...)?

Should we create some kind of mock service/operation to simulate the response from the business operations ? 

5
0 1206
Question Alexey Maslov · May 25, 2023

In elder versions of IRIS/Cache numeric overflow was detected during the syntax check: 

USER>w $p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")" zwrite s w !,$compile(s,0,e),!! zwrite e
2021.1.1

s(0)=1
s(1)=" if (-123.45E6789)"
W $P($P($ZV,") ",2)," ("),!! S txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")" ZW
RITE s W $COMPILE(s,0,e),!! ZWRITE e
       ^
<MAXNUMBER>

while in IRIS 2022.1 it is not:

USER>w $p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")" zwrite s w !,$compile(s,0,e),!! zwrite e
2022.1.3
 
s(0)=1
s(1)=
5
0 281
Question Igor Titarenko · Jul 30, 2020

Did anyone run into this error when stopping a Production from Ens.Director?

Ens.Director::StopProduction => ERROR <Ens>ErrProductionNotQuiescent: IRIS can not become quiescent

It happens sporadically when an automated unit test from a class that extends %UnitTest.TestProduction runs a test on a Business Process. I already increased the parameter MAXWAIT to 30 seconds, but the error still happens.

4
0 742
Question Steve Pisani · Oct 19, 2019

Hi,

I'm after feedback and comments on the sort of tools and approaches the wider InterSystems community uses for QA Testing applications written in Cache/Ensemble or IRIS.   I am aware of the %UnitTest package, and understand how that works... but:

- Do you use an alternative or framework built around this native Unit Testing tool ?

- What is your experience with %UnitTest if you use it ?

- Is there a tool you would recommend for your UI (I know this is not specifically an InterSystems' related question)

4
0 767
Question Michael Davidovich · May 18, 2022

Continuing on the journey of implementing %UnitTest, @Timothy Leavitt's Test Coverage package, and automated testing with Jenkins.

My question today: why do we utilize a unit test root directory?  

I've been defining packages and classes to write unit tests as I've been developing and I run the tests on the command line or using a routine file that is setup as a debug target which has been working great.  I use DebugRunTestCase() to do this (so the classes aren't deleted).

4
1 636
Question Jess Farmer · Mar 4, 2019

I successfully got everything in this guide to work:  https://community.intersystems.com/post/ensemble-rabbitmq-java-client-q…

I am now using the information I gained from this guide along side with this guide:

https://www.rabbitmq.com/tutorials/tutorial-one-spring-amqp.html

I am running into an issue though. In the RabbitMQ guide I just posted, they have a "Receive message" functionality. I use that alongside with the SendMsg from Ensemble method in the InterSystems guide.

4
0 640
Question Michael McGrann · Aug 15, 2022

We are looking for a 3rd party application that can scan our IRIS based Cache Object Script code for vulnerabilities or coding weaknesses.  There are many, many applications/vendors out there that do code scanning but none seem to support Cache Object Script or scanning the IRIS environment.   If anyone is aware of a company/product that can scan our code / IRIS environment, I would love to hear about it.

Thanks in advance for the help.

Mike

3
0 598