如何在不同的类webdriver中保持testng中的依赖

时间:2015-05-06 06:00:08

标签: java selenium-webdriver testng

我有一个类似两个不同测试类的场景,第二个测试类结果取决于第一个

公共类class1     {         @测试         public void sometest1()         {             //一些功能         }     }

public class class2
{
    @test
    public void sometest2()
    {
        // some different functionality
    }
}

如果class1结果通过,则需要执行class2,否则class2需要失败。(如果没有相同的规定我需要在class1中执行test1,总是先在selenium grid parallel run中执行)

4 个答案:

答案 0 :(得分:2)

如上所述,请参阅:http://testng.org/doc/documentation-main.html#annotations

按照上面的评论,我希望你尝试使用依赖于另一个类中的方法。在这种情况下,您需要提供完整的路径,即package.class.method。

的Class1:

public class testingcode {


@Test
public void test1(){
    System.out.println("test1");
}
}

等级2:

public class testcase1{

@Test(dependsOnMethods={"com.test.testingcode.test1"})
public void testcase1result() throws InterruptedException{

    System.out.println("test");
}
}

从TestNG.xml文件

运行
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none" preserve-order="true">
<test name="Test">
<classes>
  <class name="com.test.testingcode"/>
  <class name="com.test.testcase1"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

如果不能正常工作,请告诉我。

谢谢你, 穆拉利

答案 1 :(得分:0)

您可以使用dependsOnMethods ,如下所示

   @Test
   public void test1() {
       // Instantiate another case class 
       // Call your testcase
   }      

  @Test(dependsOnMethods="test1")
   public void test2() {
   }

答案 2 :(得分:0)

testng中有一些注释可以让你获得所需的流量。 我从未参与过testng,但我认为你可以在这里找到合适的注释:http://testng.org/doc/documentation-main.html#annotations

可能是dependsOnGroups帮助你

答案 3 :(得分:0)

您可以在testng中使用组和依赖项在执行某些测试后运行测试。如果Class1测试失败,则无法(至少据我所知)无法通过Class2测试。

public class Class1Test {
    @Test(groups="RunFirst")
    public void sometest1() {
        Assert.fail("just to skip the other test");
    }
}

public class Class2Test {
    @Test(dependsOnGroups="RunFirst")
    public void sometest2() {
        System.out.println("I am running");
    }
}

这里Class2Test将在Class1Test运行后运行,如果Class1Test失败将被跳过。