TestNG @Test(invocationCount = 20)到一个带有@Test(DataProvider =“someList”)的类到一个方法

时间:2017-10-09 19:10:40

标签: java testing testng testng-dataprovider

我有一个JAVA项目的TestNG测试套装,在那里我有一个

@Test(DataProvider =“ListOfObjects”)带注释的方法。它提供了大约20行数据的方法。(因此该方法运行20次。)   现在,我想运行这个类 2小时(SOAK相关测试的一部分。)平均来说,Class运行大约需要10分钟。所以我在思考或运行全班12次,因此考虑在类本身上使用 @Test(invocationCount = 20)。 有更好的想法吗?

2 个答案:

答案 0 :(得分:0)

您可以在方法中提取测试,然后创建具有相当高的调用计数的测试方法。在该测试方法中,将时间与保存第一次运行的时间戳的变量进行比较,如果运行时间超过20分钟,则跳过测试。

答案 1 :(得分:0)

找到一个令人尴尬的简单解决方案: 重复整个测试套装如下

@Test
public void RepeatTestSuite() {
    long startTime = new Date().getTime();
    while(!isTestFinished(startTime)) {

          List<String> suites = new ArrayList<String>();
             suites.add("./SOAK_all41.xml"); //path of .xml file to be run-provide complete path

             TestNG tng = new TestNG();
             tng.setTestSuites(suites);

             tng.run(); //run test suite
        }