Hello,

I propose that we bind failsafe plugin to TestNG rather than JUnit 
project-wide.  

The reason is simple - TestNG supports placing tests into groups and declaring 
dependencies that determine which order all tests in the module run in - and 
JUnit does not.  

Consider the following scenario - a provider module test plan includes the 
following:  
a) collect documents
b) validate the collected documents against their upstream schema(s)
c) convert the collected documents to activity and activity object schema(s)
d) validate the converted documents, using an appropriate validator for each 
verb and object type

If we have the ability to specify the order of test execution, that test plan 
might be 2, 3, 4, or more separate test classes.  

If not, all of that mostly orthogonal testing has to be corralled into a single 
test class just to ensure proper order of execution.

All of our provider and persist module can have more complex yet more simply 
organized tests using this model.  

As for surefire plugin for unit testing, I’m ambivalent - I would think we can 
leave it on JUnit unless there’s a clear benefit to switching it also.  

Making the switch should be easy -  
1) remove org.junit imports in every class ending with IT
2) import the corresponding org.testng.annotations instead.
3) swap the failsafe binding in the streams-master pom
4) confirm the same number of tests run during integration-test and all still 
pass.

Any objections or related ideas to consider?  

Steve  




Reply via email to