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.
