A quick educational aside for those unfamiliar with JUnit @Category annotations.

See the examples below for how these test markings are done in code.
The first (GatewayBasicFuncTest) will run in the integration-test phase 
typically via mvn verify in all profiles.  The second 
(GatewayLdapPosixGroupFuncTest) will run in the integration-test phase only 
with the release profile selected (i.e. -Prelease).  Any unmarked test will run 
in the test phase regardless of profile.

@Category( { VerifyTest.class, MediumTests.class } )
public class GatewayBasicFuncTest {



@Category(ReleaseTest.class)
public class GatewayLdapPosixGroupFuncTest {





On 1/22/16, 10:48 AM, "Sumit Gupta" <[email protected]> wrote:

>Hey everyone,
>
>Besides a review of the test case itself in KNOX-651, I wanted to 
>review/discuss the changes made to the test annotations and the maven build 
>lifecycle for the project.
>
>As we had discussed on a separate thread, we wanted to bring in some 
>integration tests involving the various services with Kerberos enabled. The 
>first attempt made in this work item is with WebHDFS using the mini KDC in 
>hadoop common.
>
>The other goal we had in mind is to run the integration tests on Jenkins and 
>not necessarily run them all the time during development (although you should 
>be able to if you wanted to). To allow for this, two annotations have been 
>added (actually the existing annotations of FunctionalTests and 
>IntegrationTests have been renamed).
>
>- VerifyTest: These are essentially functional tests and will run if you 
>execute 'mvn verify' or 'mvn install'
>- ReleaseTest: These are integration tests that help us verify the build and 
>are not necessarily tests you want to run during development. These run by 
>enabling the 'release' profile I.e. executing 'mvn -Prelease install'
>
>Both VerifyTest and ReleaseTest have been bound to the 'integration-test' 
>phase in the maven lifecycle, but ReleaseTests are only added and run if the 
>release profile is enabled. So what this also means is that you can now run 
>only plain old unit tests with 'mvn test' for a quick sanity check during 
>development.
>
>So how does this affect the ant commands? Right now the ant commands are the 
>way they used to be, in that 'ant verify' always ran everything and it is 
>still does (everything now being Unit, VerifyTest and ReleaseTests). This can 
>of course be a bit confusing as it does not match the 'mvn verify' command. 
>This also begs the question on what should the commit criteria be? Doing a 
>'mvn clean install' should be sufficient in my mind but if you are used to 
>using the ant commands, we may need new ones and/or need to modify existing 
>ones.
>
>Thoughts?
>
>Sumit.
>

Reply via email to