Dmitry Kholodilov created SUREFIRE-1024:
-------------------------------------------

             Summary: "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}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.


--
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

Reply via email to