maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brett Porter <>
Subject Re: RFC : integration tests
Date Tue, 18 Nov 2008 05:41:06 GMT
I agree, for a future version of Maven. What I think is needed is  
reusable test lifecycles so you get the source directory, compilation  
and resources sequence, and then the run.

You might also like to look at the slides from my talk at ApacheCon  
that cover the two alternatives that are available today:


On 17/11/2008, at 1:08 AM, nicolas de loof wrote:

> Hi,
> First of all, please don't blame me for my horrible english. I'm  
> french, and
> french guys are known for beeing poor foreign language speackers...
> maven default lifecycle defines integration-test phase, but AFAIK  
> there is
> no consensus (yet) on how to use it. Some wiki doc help to setup a
> maven/surefire hack to split test into unit / integration based on  
> naming
> conventions, but nothing better.
> I'd like to suggest some convention and maybe plugins enhancement to  
> support
> integration tests in a common way.
> *What's an IT test ?
> *Just to keep things clear, I thing "intergation-test" is a far too  
> large
> word. Some of us consider tests that require a container (typically,  
> war
> deployed and selenium test), some other consider tests that require  
> host or
> network resources (DataBase-related tests) and others simply tests  
> that
> require complex setup and not just "unit" scope, like GWTTestCase or
> Spring-related ones that start an ApplicationContext.
> Based on this, I don't thing we can define a 100% consensus on how  
> to define
> and run IT tests with maven. I'll focus on the simpliest use case :  
> tests
> written in Java that you don't want / can't run before packaging. I  
> suppose
> the pre-integration test phase is enough to setup all required
> infrastructure to get IT test running.
> *What's wrong with the existing solutions ?
> *Even it works in many cases, I don't like the Test naming  
> convention hack
> to use a shared target/test-classes for all tests
>   - there is no way to distinguish unit and IT resources
>   - there is no nice distinction between unit and IT tests.This  
> doesn't
>   help newbee developpers to understand the role of such code
>   - hey, this really looks like an ugly maven hack ! We should  
> support IT
>   tests with no configuration as we support compilation and unit  
> tests with a
>   minimal POM.
> *What is missing in maven ?*
>   - there is no convention for an IT-tests source directory.
>   - there is no maven-compiler-plugin Mojo to handle such java  
> sources,
>   with a dedicated output folder
>   - there is no maven-resources-plugin Mojo to handle resources  
> dedicated
>   to IT tests
>   - there is no maven-surefire-plugin Mojo to run them
> *What can we do ?*
> Define a dedicated directory for IT tests. As a new XML element in  
> POM would
> require to change the ModelVersion with compatibility issues, I'd  
> suggest to
> define a standard property  
> (the
> same way we did for encoding), with default value to
> src/integration-test/java. Same for IT resources
> Either define new Mojos in compiler, resources and surefire plugins  
> (that
> would require 3 new releases), or create a new
> maven-integration-tests-plugin to share code from those 3 plugins  
> and handle
> the whole process :
> compile integrationTestSourceDirectory to target/integration-tests- 
> classes
> copy IT resources to target/integration-tests-classes
> run tests found in target/integration-tests-classes, with target/ 
> classes and
> target/test-classes in classpath.
> Any suggestion, feedback or link to an existing solution is welcome
> Cheers,
> Nicolas

Brett Porter

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message