Common Testing Frameworks.

Primary tabs

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)

- What process do you use to routinely run tests on your application ? 

Any other comment/feedback on this area would be welcome and I'm sure prove interesting for other members seeking to explore automatic, QA testing of applications

Thanks

Steve

  • 0
  • 0
  • 117
  • 2
  • 2

Answers

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

Not really.

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

Except lack of test parallelization it's actually quite good. Also would be great to be able to skip some tests natively.

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

@Sergey Sarkisyan any comments?

What process do you use to routinely run tests on your application ? 

You can read about that in my series of articles on GitLab.

"Quality Manager" (QM) is InterSystems home-grown tool to test application GUI - currently in use for TrakCare.

Hi Steve,

We (Application Services - internal applications @ InterSystems) use %UnitTest with some extensions. We have a base Unit Test case that has a "run this test" helper method (among other things), a wrapper around %UnitTest.Manager that makes it easier to run all the tests without deleting them (and with some other features optionally enabled, like test coverage measurement - see a video of my 2018 Global Summit presentation on this here). Our wrapper also loads all of the unit tests before running any, which allows unit tests to extend classes within the unit test root in different packages from their own.

I agree with @Eduard Lebedyuk that %UnitTest meets our needs well aside from the lack of parallelization. A parallel %UnitTest runner would be an interesting project indeed...

We routinely run unit tests via Jenkins CI, report test results in the jUnit format, and also report on code coverage (Cobertura-style) and a complexity/coverage scatter plot.

For automated UI testing, Selenium/Cucumber has worked well for older Zen/CSP UIs. True unit testing of newer UIs (e.g,. Jasmine and Karma for Angular) is handy too.

Comments