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

Java 如何在不同的webdriver类中保持testng中的依赖性,java,selenium-webdriver,testng,Java,Selenium Webdriver,Testng,我有一个类似于两个不同测试类的场景,第二个测试类的结果取决于第一个 公共班级1 { @试验 public void sometest1() { //一些功能 } } 这里,如果class1的结果为“通过”,则需要执行class2,否则class2需要失败。(如果没有相同的规定,我需要在selenium网格并行运行中始终首先执行class1中的test1)您可以使用dependsOnMethods如下所示 @Test public void test1() { // In

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

公共班级1 { @试验 public void sometest1() { //一些功能 } }


这里,如果class1的结果为“通过”,则需要执行class2,否则class2需要失败。(如果没有相同的规定,我需要在selenium网格并行运行中始终首先执行class1中的test1)

您可以使用dependsOnMethods如下所示

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

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

testng中有一些注释允许您选择所需的流。 我从未使用过testng,但我认为您可以在这里找到合适的注释:


可能是dependsOnGroups帮助您

您可以在testng中使用group和dependency在执行某些测试后运行测试。如果1级考试不及格,就没有办法(至少据我所知)2级考试不及格

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将在ClassTest运行后运行,如果ClassTest失败,则将跳过该测试。

如前所述,请参阅:

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");
    }
}
根据上面的评论,我希望您尝试使用另一个类中的dependens-for方法。在这种情况下,您需要提供完整的路径ie package.class.method

类别1:

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 -->

如果它不起作用,请告诉我

谢谢,,
Murali

thnaks感谢您的时间,但问题是我们正在使用自定义工具,要更新那里的结果,我们只需要使用不同的类,如果它在同一个类上,上述建议的解决方案将对我有所帮助,但我的情况是使用不同的类,因为您需要创建一个主要类型的测试类,您需要手动调用其他测试用例的地方。例如,在test1内实例化并调用测试类,然后在test2内实例化并调用测试类,以此类推。看看我的答案,希望这对你有用。如果这有帮助,请投票或接受这个答案