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?