I still have a lot of hesitations about whatever we should migrate to TestNG or not... I had a look at the TestNG API and got the (admittedly superficial) impression of an API slightly less structured than the JUnit one. Keeping in mind that the choice could impact the GeoAPI conformance module, staying with JUnit may increase the users base since TestNG can execute JUnit tests, while the converse is not true. It would also avoid disturbing geoapi-conformance users (I have no idea if there is many). Furthermore JUnit is bundled in the Android API (but only JUnit 3, not 4), which may be a platform to explore.

Some arguments in the past in favour of TestNG was parametrized tests. But JUnit 4 now have them, and indeed GeoAPI-conformance uses them a lot. An other argument was test grouping, but JUnit 4.10 has an experimental "Category" feature which seems similar (I didn't tried it yet).

My main grief against the current JUnit is the lack of test dependencies, which seems to be considered against the JUnit principle of test isolation. However I found this project which seems to add exactly that:

    https://github.com/junit-team/junit.contrib/tree/master/assumes

This is only 2 small classes under Apache 2 license, so we could easily copy them in the SIS test classes.

I also found this lovely JUnit extension, which seem yet more attractive than TestNG to me :-).

    http://scg.unibe.ch/research/jexample
http://chem-bla-ics.blogspot.jp/2010/08/specifying-unit-test-dependencies-with.html

JExample is under Common Public License Version 1.0 (CPL), which I think is the same one than JUnit itself. However this project seems inactive for about 3 years. For example it still built on top of JUnit 4.3, while the current version is 4.10.

Any though?

    Martin


Le 20/09/12 23:38, Mattmann, Chris A (388J) a écrit :
I'd say I'm more familiar with Junit ATM, so if we switched to TestNG I'd have 
to learn it.
Maybe we can do it, slowly, as it makes sense on a class by class basis, over 
time? Or
even a SIS module by module basis?

Reply via email to