解决从命令行运行单个TestNG测试类的问题

时间:2019-08-07 19:52:56

标签: maven selenium command-line testng

当我尝试使用命令从命令行运行单个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>

1 个答案:

答案 0 :(得分:0)

  1. 尝试升级到TestNG的最新版本suffering from a form of a bug
  2. 尝试提供fully qualified class name之类的

    mvn -Dtest=com.project.selenium.testcases.foo1.datasetup.nbc.NBC1 test
    
  3. 您总是可以拿出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,了解更多信息