我有一个类似两个不同测试类的场景,第二个测试类结果取决于第一个
公共类class1 { @测试 public void sometest1() { //一些功能 } }
public class class2
{
@test
public void sometest2()
{
// some different functionality
}
}
如果class1结果通过,则需要执行class2,否则class2需要失败。(如果没有相同的规定我需要在class1中执行test1,总是先在selenium grid parallel run中执行)
答案 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失败将被跳过。