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.
>