使用TestNG的动态测试套件

时间:2012-12-05 20:39:43

标签: unit-testing testng

我想编写Java代码,从充满文件的目录动态创建多个TestNG测试套件。每个文件对应一个包含基于文件内容的测试的测试套件。关键是我需要为每个套件进行特定设置和拆卸。

我知道我可以使用Factory注释从单个文件动态构建测试。例如:

public class TestFactory {
    @Factory
    public Object[] createTestFromFile() throws Exception {
        ArrayList<MyTest> tests = new ArrayList<MyTest>();

        BufferedReader reader = new BufferedReader(new FileReader("test1.txt"));
        String testData;
        while ((testData = reader.readLine()) != null) {
            tests.add(new MyTest(testData));
        }

        return tests.toArray();
    }
}

public class MyTest {
    private String testData;

    public MyTest(String testData) {
        this.testData = testData;
    }

    @Test
    public void runTest() {
        assertTrue(testData.equals(testData));
    }

}

但是如何读取多个文件并为每个文件创建一个单独的测试套件,每个文件都有不同的套件特定设置/拆卸?

1 个答案:

答案 0 :(得分:2)

这可能会有所帮助:Running TestNG programmatically您可以使用XMLSuite类创建动态套件,可能会将您的文件名设置为套件中的参数,并将您的setup / teardown设置为侦听器。