java - 如何在 TestNG 框架中为多个输入文件运行相同的代码?

标签 java automated-tests testng testng-eclipse

我的测试类有一些代码可以执行所需的验证。

测试类:

@Parameters({ "InputFile01"})
@Test
public void testCase01(String InputFile01) {
  //Code xyz
}

@Parameters({ "InputFile02"})
@Test
public void testCase01(String InputFile02) {
  //Code xyz (Same code as above)
}

我必须多次复制上面的代码才能为不同的输入文件运行它,我该如何处理这个

我正在从 xml 运行测试套件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Regression">

<test name="PI01_Sprint1_ID12345">

        <classes>
            <class name="org.PI01.PI01_Sprint1_ID12345">
                <methods>
                    <parameter name="InputFile01" value="PI01\TC01.xml" />
                    <include name="testCase01" />
                     <parameter name="InputFile02" value="PI01\TC02.xml" />
                    <include name="testCase02" />

                </methods>
            </class>
        </classes>
    </test>

</suite>

最佳答案

您不需要使用参数化测试重复代码,这就是它的发明目的:)

您的情况的正确用法似乎是:

@Parameters({ "filename"})
@Test
public void testCase01(String filename) {
  //openFile(filename)
  //do something
}

并在配置中使用此参数的不同值调用测试:

<test name="test file1">
    <parameter name="filename" value="file1.txt" />
...    
</test>
<test name="test file2">
    <parameter name="filename" value="file2.txt" />
 ...    
</test>

看来您可以使用 DataProvider 提供一组参数:

public class TestParameterDataProvider {

    @Test(dataProvider = "provideFilenames")
    public void test(String filename) {
        //openFile(filename)
        //assert stuff...
    }

    @DataProvider(name = "provideFilenames")
    public String[] provideData() {
        return new String[] { 
            "filename1", "filename2", "filename3" 
        };
    }

}

更多:https://www.tutorialspoint.com/testng/testng_parameterized_test.htm

https://www.mkyong.com/unittest/testng-tutorial-6-parameterized-test/

关于java - 如何在 TestNG 框架中为多个输入文件运行相同的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43348800/

相关文章:

java - 在 spring boot 中使用 testNG 进行单元测试需要时间来构建项目

java - 使用 PDFBox 断言 PDF 中的文本 - Selenium/java

spring-boot - 在没有 Spring Boot Application 主类的项目中测试 Spring Data Repository

java - Android 无法让 TextViews 用 LinearLayout 显示

java - 正确使用图表

Selenium 运行功能测试按测试时间分布

c# - TFS 构建服务器在警告 "Cannot find the last label"后卡住

java - 如何按住按钮直到方法结束

java - 应用程序子类中的奇怪异常

unit-testing - 规则引擎和自动化测试难题