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