2014-10-28 128 views
0

我正在开发测试集成和使用测试,在这里我需要运行多个测试数据的测试用例序列。这里测试用例之间有依赖关系。TestNG测试用例序列

公共类对MyTestCase延伸ISIntegrationTest {

TestBean testbean; 

@Factory(dataProvider = "beanProvider") 
public MyTestCase(TestBean testbean) { 
    this.testbean = testbean; 
} 

@DataProvider(name = "beanProvider") 
public static TestBean[][] beanProvider() { 
    return new TestBean[][] { { new TestBean("type1") }, 
      { new TestBean("type2") } }; 
} 

@BeforeTest(alwaysRun = true) 
public void testInit() throws Exception { 

} 

@AfterTest(alwaysRun = true) 
public void atEnd() throws Exception { 

} 

@Test(alwaysRun = true, description = "test1") 
public void test1() { 
    System.out.println("test1 : " + testbean.type); 
} 

@Test(groups = "wso2.is", description = "test2", dependsOnMethods = "test1") 
public void test2() throws Exception { 
    System.out.println("test2 : " + testbean.type); 

} 

@Test(groups = "wso2.is", description = "test3", dependsOnMethods = "test2") 
public void test3() throws Exception { 
    System.out.println("test3 : " + testbean.type); 

} 

static class TestBean{ 
    String type; 

    TestBean(String type){ 
     this.type = type; 
    } 

} 

}

在这里,我需要运行TEST1,TEST2和TEST3与提供传递阵列的数据元素的序列。根据上述示例,我期待输出如下。

测试1:TYPE1 TEST2:TYPE1 TEST3:TYPE1 测试1:2型 测试2:2型 TEST3:2型

但我得到以下输出

测试1:TYPE1 测试1:2型 TEST2 :type1 test2:type2 test3:type1 test3:type2

有什么方法可以解决这个问题吗?

回答

1

按实例使用组运行测试 按如下所示创建一个套件xml并设置group-by-instances =“true”,使用这个运行测试。

<suite thread-count="2" verbose="10" name="testSuite" parallel="tests"> 
<test verbose="2" name="nameOfTheTestFirefox" group-by-instances="true"> 
    <parameter name="browserName" value="firefox" /> 
    <classes> 
     <class name="com.crazytests.dataproviderissue.MyTestCase" /> 
    </classes> 
</test>