TestNG依赖来自不同类的OnMethods
当要依赖的测试与具有此批注的测试的类相同时,@ Test注释的dependsOnMethods
属性可以正常工作。 但是如果要测试的方法和依赖方法在不同的类中,它就不起作用。 示例如下:
class c1 { @Test public void verifyConfig() { //verify some test config parameters } } class c2 { @Test(dependsOnMethods={"c1.verifyConfig"}) public void dotest() { //Actual test } }
有没有办法解决这个限制? 一个简单的方法是在class c2
中创建一个调用c1.verifyConfig()
。 但这将是太多的重复。
将该方法放在一个group
并使用dependsOnGroups
。
class c1 { @Test(groups={"c1.verifyConfig"}) public void verifyConfig() { //verify some test config parameters } } class c2 { @Test(dependsOnGroups={"c1.verifyConfig"}) public void dotest() { //Actual test } }
建议在@Before
*中validation配置,如果出现问题则抛出,这样测试就不会运行。 这样,测试可以专注于测试。
class c2 { @BeforeClass public static void verifyConfig() { //verify some test config parameters //Usually just throw exceptions //Assert statements will work } @Test public void dotest() { //Actual test } }
DependsOnMethods不能用于不同的类,要解决这个问题,我们可以使用dependsOnGroups;
代码改变了;
1. dependsOnGroups类;
@Test(groups = {“prerequisites”})
public void M1() { }
2.调用dependsOnGroups的类;
@Test(dependsOnGroups={"prerequisites"}) public void M2() { }
3. xml
您可以在TestNG @Test
注释中使用groups
和dependsOnGroups
,如前面的答案中所述。
但是,这两个类都需要在同一个
。
运行测试套件时,以下内容将导致exception。