You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by ginger <gi...@gmail.com> on 2013/07/30 05:26:02 UTC
odd behavior of running tests with surefire plugin
Hello, Maven gurus,
We run into something very bizarre when trying to run some unit tests
that use a embedded jetty server with surefire and cobertura. It works
well with our original configuration like
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<skip>${maven.test.skip}</skip>
<check>
<branchRate>30</branchRate>
<lineRate>30</lineRate>
<haltOnFailure>true</haltOnFailure>
<totalBranchRate>55</totalBranchRate>
<totalLineRate>55</totalLineRate>
<packageLineRate>50</packageLineRate>
<packageBranchRate>50</packageBranchRate>
</check>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>cxf</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xms512m -Xmx1024m
-XX:MaxPermSize=512m</argLine>
<junitArtifactName>junit:junit</junitArtifactName>
<includes>
<include>**/*UnitTest*</include>
<include>**/*JettyTest*</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0-beta-6</version>
</extension>
</extensions>
</build>
But when I tried to separate the running of UnitTest and JettyTest like
the following, so UnitTest are run all the time and JettyTests are only
run in a specific profile,
<build>
<pluginManagement>
<plugins>
<!-- surefire stays here or it overrides the definition
in profiles -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xms512m -Xmx1024m
-XX:MaxPermSize=512m</argLine>
<junitArtifactName>junit:junit</junitArtifactName>
<includes>
<include>**/*UnitTest*</include>
</includes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>cxf</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0-beta-6</version>
</extension>
</extensions>
</build>
and get the JettyTest and Cobertura in a profile called all-test
<profiles>
<profile>
<id>all-test</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xms512m -Xmx1024m
-XX:MaxPermSize=512m</argLine>
<junitArtifactName>junit:junit</junitArtifactName>
<includes>
<include>**/*UnitTest*</include>
<include>**/*JettyTest*</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<skip>${maven.test.skip}</skip>
<check>
<branchRate>30</branchRate>
<lineRate>30</lineRate>
<haltOnFailure>true</haltOnFailure>
<totalBranchRate>55</totalBranchRate>
<totalLineRate>55</totalLineRate>
<packageLineRate>50</packageLineRate>
<packageBranchRate>50</packageBranchRate>
</check>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
It runs fine in my centos 5.5 x86_64. But if I submit it to centos 5.7
x86_64, jetty tests are giving me all kinds of errors, like the jetty
server cannot be initiated right. But with the original configuration,
jetty tests are OK. I'm so confused. Totally out of clues. Can any one
please give me some hint/insights? Anything would be deeply appreciated
Re: odd behavior of running tests with surefire plugin
Posted by Jeff MAURY <je...@jeffmaury.com>.
Can you give us the kind of error messages you got when Jetty fails ?
Jeff
On Tue, Jul 30, 2013 at 5:26 AM, ginger <gi...@gmail.com> wrote:
> Hello, Maven gurus,
>
> We run into something very bizarre when trying to run some unit tests that
> use a embedded jetty server with surefire and cobertura. It works well
> with our original configuration like
>
> <build>
> <pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.codehaus.mojo</**groupId>
> <artifactId>cobertura-maven-**plugin</artifactId>
> <configuration>
> <skip>${maven.test.skip}</**skip>
> <check>
> <branchRate>30</branchRate>
> <lineRate>30</lineRate>
> <haltOnFailure>true</**haltOnFailure>
> <totalBranchRate>55</**totalBranchRate>
> <totalLineRate>55</**totalLineRate>
> <packageLineRate>50</**packageLineRate>
> <packageBranchRate>50</**packageBranchRate>
> </check>
> </configuration>
> <executions>
> <execution>
> <goals>
> <goal>clean</goal>
> <goal>check</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-compiler-**plugin</artifactId>
> <configuration>
> <source>1.6</source>
> <target>1.6</target>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-war-plugin</**artifactId>
> <configuration>
> <warName>cxf</warName>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-dependency-**plugin</artifactId>
> <executions>
> <execution>
> <id>install</id>
> <phase>install</phase>
> </execution>
> </executions>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-surefire-**plugin</artifactId>
> <configuration>
> <argLine>-Xms512m -Xmx1024m
> -XX:MaxPermSize=512m</argLine>
> <junitArtifactName>junit:**junit</junitArtifactName>
> <includes>
> <include>**/*UnitTest*</**include>
> <include>**/*JettyTest*</**include>
> </includes>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.codehaus.mojo</**groupId>
> <artifactId>sonar-maven-**plugin</artifactId>
> <version>2.0</version>
> </plugin>
> </plugins>
> <extensions>
> <extension>
> <groupId>org.apache.maven.**wagon</groupId>
> <artifactId>wagon-ssh</**artifactId>
> <version>1.0-beta-6</version>
> </extension>
> </extensions>
> </build>
>
>
> But when I tried to separate the running of UnitTest and JettyTest like
> the following, so UnitTest are run all the time and JettyTests are only run
> in a specific profile,
>
> <build>
> <pluginManagement>
> <plugins>
> <!-- surefire stays here or it overrides the definition in
> profiles -->
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-surefire-**plugin</artifactId>
> <configuration>
> <argLine>-Xms512m -Xmx1024m
> -XX:MaxPermSize=512m</argLine>
> <junitArtifactName>junit:**junit</junitArtifactName>
> <includes>
> <include>**/*UnitTest*</**include>
> </includes>
> </configuration>
> </plugin>
> </plugins>
> </pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-compiler-**plugin</artifactId>
> <configuration>
> <source>1.6</source>
> <target>1.6</target>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-war-plugin</**artifactId>
> <configuration>
> <warName>cxf</warName>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-dependency-**plugin</artifactId>
> <executions>
> <execution>
> <id>install</id>
> <phase>install</phase>
> </execution>
> </executions>
> </plugin>
> <plugin>
> <groupId>org.codehaus.mojo</**groupId>
> <artifactId>sonar-maven-**plugin</artifactId>
> <version>2.0</version>
> </plugin>
> </plugins>
> <extensions>
> <extension>
> <groupId>org.apache.maven.**wagon</groupId>
> <artifactId>wagon-ssh</**artifactId>
> <version>1.0-beta-6</version>
> </extension>
> </extensions>
> </build>
>
> and get the JettyTest and Cobertura in a profile called all-test
>
> <profiles>
> <profile>
> <id>all-test</id>
> <build>
> <pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-surefire-**plugin</artifactId>
> <configuration>
> <argLine>-Xms512m -Xmx1024m
> -XX:MaxPermSize=512m</argLine>
> <junitArtifactName>junit:**junit</junitArtifactName>
> <includes>
> <include>**/*UnitTest*</**include>
> <include>**/*JettyTest*</**include>
> </includes>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.codehaus.mojo</**groupId>
> <artifactId>cobertura-maven-**plugin</artifactId>
> <configuration>
> <skip>${maven.test.skip}</**skip>
> <check>
> <branchRate>30</branchRate>
> <lineRate>30</lineRate>
> <haltOnFailure>true</**haltOnFailure>
> <totalBranchRate>55</**totalBranchRate>
> <totalLineRate>55</**totalLineRate>
> <packageLineRate>50</**packageLineRate>
> <packageBranchRate>50</**packageBranchRate>
> </check>
> </configuration>
> <executions>
> <execution>
> <goals>
> <goal>clean</goal>
> <goal>check</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </pluginManagement>
> </build>
> </profile>
> </profiles>
>
> It runs fine in my centos 5.5 x86_64. But if I submit it to centos 5.7
> x86_64, jetty tests are giving me all kinds of errors, like the jetty
> server cannot be initiated right. But with the original configuration,
> jetty tests are OK. I'm so confused. Totally out of clues. Can any one
> please give me some hint/insights? Anything would be deeply appreciated
>
>
--
Jeff MAURY
"Legacy code" often differs from its suggested alternative by actually
working and scaling.
- Bjarne Stroustrup
http://www.jeffmaury.com
http://riadiscuss.jeffmaury.com
http://www.twitter.com/jeffmaury