streams-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sblackmon <>
Subject [DISCUSS] Switch from JUnit to TestNG for failsafe integration testing.
Date Sat, 26 Nov 2016 16:17:44 GMT

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

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?  


View raw message