I understand and fully support The Maven Way. But this is a tree of 500+ tests in this tree alone (there's at least another half dozen other trees) I'm trying to script the conversion for. There's a limit to how much I can script reliably. In this case the code being tested is built elsewhere. This tree generates artifacts (test wars and servlets, e.g.) that are deployed and then used in testing. But these artifacts and tests both live in essentially the same maven module. Yes, it's more than mildly crappy. Yes, there are betters ways to do this if you're starting from scratch. But this test code and the "framework" it's built on are 10+ years old in some cases and far predate maven, testng, and junit. I'm trying to bring this code in to the 21st century bit by bit but I can only do so much at once. So for now, making the default goal "integration-test" is exactly what I needed.
On Mon, May 2, 2011 at 6:08 PM, Ed Hillmann <[email protected]> wrote: > On Fri, Apr 29, 2011 at 5:05 PM, Ron Wheeler < > [email protected] > > wrote: > > > On 28/04/2011 5:35 PM, Justin Lee wrote: > > > >> I have a huge tree of ant based projects i'm trying to convert to maven. > >> I > >> have the mechanics worked about except for a minor hitch: I need the > test > >> phase to be the last one executed. Since all of this code is test code > >> there will be no artifacts to install, no deployments run. But I need > to, > >> say, generate the war files before surefire kicks off and runs the test. > >> How can I do that? Could I bind the surefire plugin to the install > phase > >> instead? > >> > >> Try to identify the "Maven way" to do what you are doing. > > Maven is not Ant. > > > > Don't be tempted to invent something new unless you are sure that no one > > else has ever tried to develop an application like yours. > > There is a Maven Best Practice for almost every situation and most likely > > thousands of people have already set up a project like yours. It > somethings > > takes a bit of digging to find out the "right" way. > > > > > > Ron > > > > Another option which I've found useful is separate the tests into a > different module from the code being tested. This is quite > straight-forward, and you can use Maven dependencies to ensure the tests > are > running against the right version of the WAR file. So, you'd have the > original module that builds the WAR file (and whatever appropriate > Unit-level tests remaining in this module... any tests that don't require a > packaged and/or deployed WAR file), and a new module which contains only > those tests that require the WAR file. I do this with my Selenium tests. > > This is a nice Maven-way of doing it, ensuring I don't run my Selenium > tests > if the WAR doesn't build. > > Just another thought. :) > > Thanks, > Ed >
