【问题标题】:Maven war packaging skipped prior to tests being run在运行测试之前跳过 Maven 战争打包
【发布时间】:2017-04-27 05:56:17
【问题描述】:

我有一个 maven 项目,它有一些基于 Selenium 的集成测试,可以在一个名为 sat 的包中运行。我已将故障安全插件配置为在包中包含测试文件,例如。 <include>sit/**/*Test.java</include>.

我正在尝试运行mvn clean install,当它启动测试时,我注意到它实际上并没有运行 maven-war-plugin,即在运行测试之前没有将它打包到战争中。但是,如果我运行mvn clean install -Dmaven.test.skip=true,那么它确实会成功打包战争。 (我还配置了 cargo 插件来部署战争,这就是我注意到存在问题的原因,因为它无法部署不存在的战争)

我的pom的结构类似于下面的

<project ...>
    <modelVersion>4.0.0</modelVersion>

    <groupId>a</groupId>
    <artifactId>a</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
       ...
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.18.1</version>

                <configuration>
                    <includes>
                        <include>sit/**/*Test.java</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>             
            </plugin>
         </plugins>
    </build>
</project>

任何想法为什么不设置-Dmaven.test.skip=true就不能运行war插件?

在这两种情况下都会创建类文件

【问题讨论】:

    标签: maven maven-3 maven-surefire-plugin maven-failsafe-plugin maven-war-plugin


    【解决方案1】:

    尝试将集成测试的测试类重命名为带有*IT.java 后缀(或前缀...),因为这是由maven-failsafe-plugin 运行的测试的约定。

    *Test.javamaven-surefire-plugin 运行测试的另一个约定。

    所以不需要排除它们,只需重命名即可。

    【讨论】:

      【解决方案2】:

      好吧,问题似乎是 maven-surefire 试图将集成测试作为单元测试运行,所以我们必须明确地将集成测试从 surefires 单元测试中排除

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          ...
          <configuration>
              <excludes>
                  <exclude>sit/**/*Test.java</exclude>
              </excludes>
          </configuration>
      </plugin>
      

      【讨论】:

        猜你喜欢
        • 2014-06-21
        • 1970-01-01
        • 1970-01-01
        • 2016-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 2011-11-19
        相关资源
        最近更新 更多