Then all I ask is you pay your newfound enlightenment forward... With this information you can answer some maven newbie questions on the M/L
On Wednesday, 8 October 2014, Robert Mark Bram <robertmarkb...@gmail.com> wrote: > Thank you Stephen - this was very useful and came just when I am ready > to start piecing together this level of detail. > > > > 1) Default vs non-default plugins > > > suddenly a White Rabbit with pink eyes ran close by Alice > > So, what I understood from this trip down the rabbit-hole. > - Maven defines various lifecycles. > - Each lifecycle defines a list of phases. > - Each phase will execute a list of goals (defined in plugins). > - What specific goals get executed in each phase depends on the > packaging defined for the pom.xml. Generally package defines what sort > of artifact you are dealing with: jar, war, ear etc. > - I am using ear packaging, so it binds the surefire:test goal to the > test phase, but binds nothing to integration-test - which is why I > need to add the failsafe plugin to my pom.xml. I didn't need to define > a phase for it, because failsafe's default phase is integration-test. > > > > 2) Just run integration tests? > > > I can see that unit tests are all classes with names like *Test.java > > > and integration tests are all classes with names like IT.java. But mvn > > > verify and mvn test seem to run all tests (unit and integrations). Is > > > there a way to run just one or the other? > > So, going from the previous trip down the rabbit hole, I understand > that when I run "mvn verify" I was seeing unit tests and integration > tests being run because in order to get to the verify phase (where my > integration tests should run from), it was running every phase before > that - including the test phase (where unit tests are run). > > > tweaking of > > > http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#skipTests > > should get you there! > > When I was running "mvn test", I was also seeing integration tests > being run because I had named my integration test classes > TestBlahBlahIt.java so they were being picked up by both the test and > integration-test phases. > > So, I should more strictly follow the convention of > - unit tests being Test*.java - and NOT including IT at the end. > - integration tests being *.IT.java - and NOT starting with Test. Or start with IT So failsafe will pickup ITblahblah.java BlahblahIT.java And a third form that I forget > > > > > 3) Run integration tests after compile? > > > The real reason for question 2 is that I wish to run integration tests > > > only after I have deployed the new application to ensure the > > > integration tests run on the server with the new content. Is there a > > > way to do this? > > > Sounds like you should consult my answer to a related question: > > > http://stackoverflow.com/questions/16935290/maven-deploy-webapp-to-tomcat-before-junit-test/16936585#16936585 > > OK, this was very helpful too. In this case, I am working with a > multi-module project and I decided it was best to add our selenium > tests in a new project to keep them away from other project code. We > have 13 pom.xml files, not counting the one I am adding. So this is my > next challenge, to ensure I get this project executing after the > others have done their job and deployed to the app server. Dependencies will ensure sequencing of modules > > Why, sometimes I've believed as many as five impossible things before > after-noon tea. Time for one more before I knock off at 5pm. > > Rob > :) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org <javascript:;> > For additional commands, e-mail: users-h...@maven.apache.org > <javascript:;> > > -- Sent from my phone