当我尝试使用命令从命令行运行单个TestNG测试类时
mvn test -Dtest=NBC1
其中NBC1是我的测试类的名称,我收到一条错误消息,内容为“无法执行目标...未执行任何测试!
我正在使用Java运行它。我当前的配置是在项目根目录中有一个主testng.xml套件文件。我将此作为XmlSuiteFile列在我的POM文件中。这个testng.xml文件包含其他包含实际测试类的套件文件。我曾尝试将它们移出,而不是嵌套我的套件文件,但是它仍然无法正常工作。每个测试类仅包含一种测试方法。
在此处指定我的顶级套件文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
这就是我的套件文件的样子
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Test Suite">
<listeners>
<listener class-name="com.project.selenium.utilities.AnnotationTransformer" />
</listeners>
<suite-files>
<suite-file path="src/main/java/com/project/selenium/testsuites/foo1/FullSuite.xml" />
<suite-file path="src/main/java/com/project/selenium/testsuites/foo2/FullSuite.xml" />
</suite-files>
</suite>
这是FullSuite.xml文件之一的样子。为了简单起见,我省略了一些套件文件
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="AssureTrak Full Suite">
<suite-files>
<suite-file path="src/main/java/com/project/selenium/testsuites/foo1/Cleanup.xml" />
<suite-file path="src/main/java/com/project/selenium/testsuites/foo1/DataSetup.xml" />
</suite-files>
</suite>
最后,这是最低级别的套件文件,看起来像
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "DataSetup">
<test name = "DataSetup">
<classes>
<class name="com.project.selenium.testcases.foo1.datasetup.nbc.NBC1" />
<class name = "com.project.selenium.testcases.foo1.datasetup.nbc.NBC2" />
<class name = "com.project.selenium.testcases.foo1.datasetup.nbc.NBC3" />
<class name = "com.project.selenium.testcases.foo1.datasetup.nbc.NBC4" />
<class name = "com.project.selenium.testcases.foo1.datasetup.nbc.NBC5" />
</classes>
</test>
</suite>
答案 0 :(得分:0)
尝试提供fully qualified class name之类的
mvn -Dtest=com.project.selenium.testcases.foo1.datasetup.nbc.NBC1 test
您总是可以拿出testng.xml文件来启动所需的课程,例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestNG Debug Single Class">
<test name="testng">
<classes>
<class name="com.project.selenium.testcases.foo1.datasetup.nbc.NBC1"/>
</classes>
</test>
</suite>
但是,如果第1点和第2点无济于事,它看起来像是个错误,因此您可以report it
查看示例TestNG integration instruction,了解更多信息