代码之家  ›  专栏  ›  技术社区  ›  DenCowboy

跳过一个maven测试不起作用

  •  2
  • DenCowboy  · 技术社区  · 7 年前

    我尝试用maven命令跳过一个测试(doc: https://blog.jdriven.com/2017/10/run-one-or-exclude-one-test-with-maven/ ):

    mvn -B clean install -T2C -pl sub-tests -Dtest=!com.xx.xx.test.xx.xx.canMakeCall*
    

    但是我犯了一些错误(好像它试图跳过所有的测试?我不知道):

    [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ sub-tests ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project sub-tests: No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
    

    我做错什么了?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mickael    7 年前

    根据 Maven Surefire Plugin - Running a Single Test 以下内容:

    在单个测试类中运行一组方法

    从surefire 2.7.3开始,您也只能在 测试类。

    注意:这个特性只支持junit 4.x和testng。使用语法,例如“foo/mytest.java”, /mytest.java,“mytest”代表“test” 参数(请参见包含/排除)。**

    您应该使用以下语法:

    mvn -Dtest=TestCircle#mytest test
    

    所以我认为你的命令应该是:

    mvn -B clean install -T2C -pl sub-tests -Dtest=!com.xx.xx.test.xx.xx#canMakeCall*
    

    它将忽略所有以 canMakeCall 测试 com.xx.xx.test.xx.xx 是的。