Question
· Oct 30

Using the other unit testing frameworks with IPM?

I assume IPM manifest tag UnitTest is tightly coupled with the standard unit test framework, right? However we have our own one that predates the standard one and we are not going to switch.

I think I need to import the unit test cases and then be able to run a single class method for the test run. Any ideas how this would be possible?

Discussion (2)1
Log in or sign up to continue

I had a look into the IPM source code and I guess the correct places where the testing action happens are:

  • %ZPM.PackageManager.Developer.Processor.UnitTest (OnPhase method)
  • %ZPM.PackageManager.Developer.UnitTest.Manager

However I got a quite confused how I would be able to inject my own Processor.UnitTest and/or UnitTest.Manager there and what are those pParams that are passes everywhere.

Now I have this kind of workaround:

<!-- unit testing workaround -->
<Invoke Phase="Test" Class="Company.UnitTest.IPM" Method="Load" CheckStatus="true">
  <Arg>${root}/test</Arg>
</Invoke>
<Invoke Phase="Test" Class="Company.UnitTest.IPM" Method="RunTestPackage" CheckStatus="true">
  <Arg>CompanyTests</Arg>
</Invoke>

The amount of boilerplate is tolerable.

Test cases are located in ${root}/test.

Company.UnitTest.IPM is just an IPM "compatible" facade for our framework.

Now I can run test -o my-company-module. This has been working fine so far, fingers crossed there is no nasty surprises just waiting around the corner ...