【问题标题】:Skip single test with maven with command line options使用带有命令行选项的 Maven 跳过单个测试
【发布时间】:2016-02-09 09:25:15
【问题描述】:

在使用 Maven 从命令行构建项目时,我想跳过一个测试(例如 com.example.MyTest)。

我知道类似this one 这样的问题,但它们都需要修改源代码或pom.xml。我想不做修改。 如何仅使用命令行选项排除测试?

在阅读some documentation 之后,我到目前为止所尝试的是

mvn clean install -Dtest="*,!com.example.MyTest"

但测试仍未跳过。我正在使用 surefire 插件版本 2.19 和 JUnit 4.11

【问题讨论】:

    标签: java maven maven-surefire-plugin


    【解决方案1】:

    事实证明(至少在 Surefire 2.19 中),测试模式不适用于完全限定的类名。所以正确的解决方案是

    mvn clean install -Dtest="*,!MyTest"
    

    即没有包路径。

    在 Surefire 2.19.1 中,should be possible 使用完全限定名称。在早于 2.19 的版本中,似乎两者都不起作用。

    【讨论】:

    • 它对我不起作用:(这就是我使用它的方式:` test -Dlog4j.configuration=log4j-dm.xml -Dtest="*,!Testname1Test,!Testname2Test, !Testname3Test,!Testname4Test" `.
    • 你用的是什么版本的surefire?
    • 版本:[INFO] --- maven-surefire-plugin:2.12.4:test (default-test)
    • 我猜你的 Surefire 版本不支持排除这样的测试。尝试升级到 2.19。
    • 当我启动 Jenkins 时,它说版本是 maven-surefire-plugin:2.12.4。我已经更新了我的应用程序的 pom 版本,但我不知道如何在 Jenkins 中执行此操作。我仍在寻找如何做到这一点。
    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 2015-07-19
    • 2015-11-21
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多