如何使用 Selenium/TestNG/Maven 运行 单个测试用例(方法)而不是整个测试套件(class)

How to run a single test case (method) instead of whole test suite (class) using Selenium/TestNG/Maven

所以基本上我想知道如何 运行 一个特定的测试用例(一种方法)而不是 运行 整个 class。

我正在运行使用Selenium/Maven/TestNG的组合进行测试。我当前的测试设置如下所示:

运行 测试的简化命令:

mvn test -DtestSuiteName="test"

上面命令中使用的test.xml的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Selenium Testng Template">
    <test name="TestSuiteTest">
        <classes>
            <class name="listeners.Test_Listener"/>
            <class name="tests.example_test_suite_name"/>
        </classes>
    </test>
</suite>

Listener 所做的基本上是为测试设置环境,它启动一个预配置的 WebDriver 实例并在所有测试完成后关闭它 运行。它看起来像这样:

@Listeners(Listener_Helper)
class Test_Listener implements IExecutionListener {

    @BeforeSuite
    void openBrowser(){
        prepareEnviroment()
    }

    @AfterSuite
    void closeBrowser(){
        cleanUp()
    }

现在介绍示例测试文件的内容。它由一个有点像测试套件的 class 组成,它包含几个有点像测试用例的方法。

class example_test_suite_name {

    @Test(priority=1)
    void test_name_one() {
        //test instructions
    }

    @Test(priority=2)
    void test_name_two() {
        //test instructions
    }

总而言之,启动测试套件不是问题 - class,但如何启动单个测试用例 - class 的一种方法?

假设我只想启动 "test_name_one" 而不是 class 包含的其他方法。不幸的是,我在网上找不到与此相关的任何内容。

任何关于此事的提示将不胜感激

您可以在xml文件中指定更多测试方法

<groups>
        <run>
            <include name="setName"></include>
        </run>
    </groups>
    <classes>
        <class name="com.journaldev.xml.TestNGXMLTest">
        </class>
    </classes>

以上测试套件只会执行 setName 组中的方法,因此只会执行 test_setName 方法。