mvn无法在终端的自定义位置执行testNG类

时间:2018-08-22 05:47:22

标签: java maven testng

给出一个文件夹结构:

theProject/src/com/myclass/tests/api/APITest

其中包声明为:

package com.myclass.tests.api;

它使用testng中的@Test。

在pom.xml中,我包括了构建部分:

<build>
    <testSourceDirectory>${project.basedir}/</testSourceDirectory>
     <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.19.1</version>
          <configuration>
                    <includes>
                        <include>**/*Test.class</include>
                        <include>**/*test.class</include>
                        <include>src/com/myclass/tests/api/*Test.class</include>
                    </includes>
                </configuration>
        </plugin>
    </plugins>
  </build>

我试图在pom.xml所在的Project文件夹中执行以下命令。

mvn test -Dtest=com.myclass.tests.api.*

但结果显示:

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

我应该如何从mvn运行测试?

1 个答案:

答案 0 :(得分:1)

我不认为

 <testSourceDirectory>${project.basedir}/</testSourceDirectory>

这就是您想要的。

尝试

<testSourceDirectory>${project.basedir}/src</testSourceDirectory>

相反。

原因:Maven找不到文件夹结构

/com/myclass/tests/api

这是${project.basedir}中(测试的)程序包结构的结果,因此它找不到您的测试并且失败。需要处理额外的src文件夹。