在不运行单元测试的情况下构建 Maven 项目

Posted

技术标签:

【中文标题】在不运行单元测试的情况下构建 Maven 项目【英文标题】:Build Maven Project Without Running Unit Tests 【发布时间】:2010-12-09 02:28:34 【问题描述】:

如何?

目前正在为 Servlet 重组一些代码,并希望在我的 Web 浏览器中尝试一下(这意味着运行 mvn install 以获取 .war 以上传到 Tomcat)。我完全知道我的 UNIT 测试失败了,我对此很好,因为一旦我按照我想要的方式编写代码,我就会修复它。谁能给点建议?

【问题讨论】:

NetBeans IDE 怎么样? 【参考方案1】:

如果你想跳过运行和编译测试:

mvn -Dmaven.test.skip=true install

如果你想编译但不运行测试:

mvn install -DskipTests

【讨论】:

在tomcat的情况下:tomcat:deploy -DskipTests 我试过mvn install -DskipTests,它仍然运行了所有的测试。【参考方案2】:

如果您使用的是 eclipse,则配置页面上有一个“跳过测试”复选框。

运行配置 → Maven 构建 → 新 → 主选项卡 → 跳过测试

【讨论】:

Goals: clean install【参考方案3】:

运行以下命令:

mvn clean install -DskipTests=true

【讨论】:

【参考方案4】:

借助 Intellij 切换跳过测试模式可以从 Maven 项目选项卡中使用:

【讨论】:

【参考方案5】:
mvn clean install -Dskiptests=true   

现在,与上述答案的唯一区别是“T”是小写的。

【讨论】:

【参考方案6】:

我喜欢短版:mvn clean install -DskipTests

也可以:mvn clean install -DskipTests=true

如果你绝对必须,你也可以使用 maven.test.skip 属性来跳过编译测试。 maven.test.skip 受到 Surefire、Failsafe 和 Compiler Plugin 的认可。 mvn clean install -Dmaven.test.skip=true

你可以在 maven.xml 中添加配置

<project>
      [...]
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.16</version>
            <configuration>
              <skipTests>true</skipTests>
            </configuration>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>

【讨论】:

【参考方案7】:

如果你调用你的类测试,Maven 似乎会自动运行它们,至少它们为我做了。重命名这些类,Maven 将只进行验证而不运行它们。

【讨论】:

以上是关于在不运行单元测试的情况下构建 Maven 项目的主要内容,如果未能解决你的问题,请参考以下文章

在不使用数据库的情况下为服务编写单元测试

Maven - 在不构建的情况下安装项目依赖项

在多模块 Maven 项目中构建所有模块后,如何运行集成测试?

Maven单元测试

Maven(12) build 构建的使用

如何在不创建 scm 标签的情况下进行 Maven 发布?