[
https://jira.codehaus.org/browse/SUREFIRE-1024?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmitry Kholodilov updated SUREFIRE-1024:
----------------------------------------
Description:
Consider Maven project with packaging=pom that executes tests from some
external jar:
{code:xml}
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>test</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>test</groupId>
<artifactId>tests-jar</artifactId>
<version>1.0</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17-SNAPSHOT</version>
<configuration>
<dependenciesToScan>
<dependency>test:tests-jar</dependency>
</dependenciesToScan>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
{code}
(real use case is execution of prebuilt end-to-end tests of some system after
its deployment)
When we run `mvn clean verify` on such project, failsafe plugin's "verify" goal
reports the following:
{noformat}
[INFO] --- maven-failsafe-plugin:2.16:verify (verify) @ test ---
[INFO] No tests to run.
{noformat}
Consequently, even if there are test failures, build success is reported.
The reason of such behavior is that VerifyMojo ignores "dependenciesToScan"
parameter. So, the fix is easy - check its existence along with
"testClassesDirectory" existence, the same way as implemented in
AbstractSurefireMojo.
The patch in attachment includes integration test, that checks for build
failure when there is failed test in dependency jar.
was:
Consider Maven project with packaging=pom that executes tests from some
external jar:
{code:xml}
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>test</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>test</groupId>
<artifactId>tests-jar</artifactId>
<version>1.0</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17-SNAPSHOT</version>
<configuration>
<dependenciesToScan>
<dependency>test:tests-jar</dependency>
</dependenciesToScan>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
{code}e
(real use case is execution of prebuilt end-to-end tests of some system after
its deployment)
When we run `mvn clean verify` on such project, failsafe plugin's "verify" goal
reports the following:
{noformat}
[INFO] --- maven-failsafe-plugin:2.16:verify (verify) @ test ---
[INFO] No tests to run.
{noformat}
Consequently, even if there are test failures, build success is reported.
The reason of such behavior is that VerifyMojo ignores "dependenciesToScan"
parameter. So, the fix is easy - check its existence along with
"testClassesDirectory" existence, the same way as implemented in
AbstractSurefireMojo.
The patch in attachment includes integration test, that checks for build
failure when there is failed test in dependency jar.
> "verify" goal ignores "dependenciesToScan" parameter when checking tests
> existence
> ----------------------------------------------------------------------------------
>
> Key: SUREFIRE-1024
> URL: https://jira.codehaus.org/browse/SUREFIRE-1024
> Project: Maven Surefire
> Issue Type: Bug
> Components: Maven Failsafe Plugin
> Affects Versions: 2.16
> Reporter: Dmitry Kholodilov
> Attachments:
> verify_goal_ignores_dependenciesToScan_parameter_when_checking_tests_existence.patch
>
>
> Consider Maven project with packaging=pom that executes tests from some
> external jar:
> {code:xml}
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd">
> <modelVersion>4.0.0</modelVersion>
> <groupId>test</groupId>
> <artifactId>test</artifactId>
> <version>test</version>
> <packaging>pom</packaging>
> <dependencies>
> <dependency>
> <groupId>test</groupId>
> <artifactId>tests-jar</artifactId>
> <version>1.0</version>
> <classifier>tests</classifier>
> </dependency>
> <dependency>
> <groupId>org.testng</groupId>
> <artifactId>testng</artifactId>
> <version>6.8</version>
> </dependency>
> </dependencies>
> <build>
> <plugins>
> <plugin>
> <artifactId>maven-failsafe-plugin</artifactId>
> <version>2.17-SNAPSHOT</version>
> <configuration>
> <dependenciesToScan>
> <dependency>test:tests-jar</dependency>
> </dependenciesToScan>
> </configuration>
> <executions>
> <execution>
> <id>integration-test</id>
> <phase>integration-test</phase>
> <goals>
> <goal>integration-test</goal>
> </goals>
> </execution>
> <execution>
> <id>verify</id>
> <phase>verify</phase>
> <goals>
> <goal>verify</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </build>
> </project>
> {code}
> (real use case is execution of prebuilt end-to-end tests of some system after
> its deployment)
> When we run `mvn clean verify` on such project, failsafe plugin's "verify"
> goal reports the following:
> {noformat}
> [INFO] --- maven-failsafe-plugin:2.16:verify (verify) @ test ---
> [INFO] No tests to run.
> {noformat}
> Consequently, even if there are test failures, build success is reported.
> The reason of such behavior is that VerifyMojo ignores "dependenciesToScan"
> parameter. So, the fix is easy - check its existence along with
> "testClassesDirectory" existence, the same way as implemented in
> AbstractSurefireMojo.
> The patch in attachment includes integration test, that checks for build
> failure when there is failed test in dependency jar.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira