使用testng.xml跳过测试用例执行

时间:2019-07-01 07:12:56

标签: selenium selenium-webdriver testng selenium-ide testng.xml

在我的项目中,我们开发了一种结构,例如可以从测试文件中运行各个测试用例,对于完整的BVT,我们也必须使用testng xml来运行相同的用例(以正确的顺序运行(跳过当前测试(如果先前的测试失败)。

但是,当我们尝试使用这种方法运行方案时,我们要么能够运行所有方案(不能跳过测试,并且如果第一次失败,它们都将失败),或者根本不运行它们。

请查看下面与我的项目代码相似的代码片段,如果我在这里缺少内容,请告诉我。

首次测试:

import org.testng.Assert;
import org.testng.annotations.Test; /** * Hello world! * */
public class App {
 @Test(groups = "FirstGroup") public void testCase1() {
  boolean x = true;
  System.out.println("Test Case 1");
  Assert.assertEquals(x, true);
 }
}

第二项测试:

import org.testng.Assert;
import org.testng.annotations.Test;
public class App2 {
 @Test(groups = "SecondGroup") public void testCase2() {
  boolean x = true;
  System.out.println("Test Case 2");
  Assert.assertEquals(x, false);
 }
}

testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="softwaretestingmaterial">
    <test name="testngTest">
        <classes>
            <class name="Project.Test.Test.App" />
        </classes>
    </test>
    <test name="testngTest2">
        <groups>
            <run>
                <include name="Project.Test.Test.App" />
                <include name="Project.Test.Test.App2" />
            </run>
            <dependencies>
                <group name="SecondGroup" depends-on="FirstGroup"></group>
            </dependencies>
        </groups>
        <classes>
            <class name="Project.Test.Test.App2" />
        </classes>
    </test>
</suite>

1 个答案:

答案 0 :(得分:0)

您可能想尝试将这些依赖项指定为如下所示的注释,而不是在TestNg.xml文件中指定它们。

import org.testng.Assert;
import org.testng.annotations.Test;
public class App2 {
 **@Test(groups = "SecondGroup", dependsOnMethods = { "testCase1" })** 
public void testCase2() {
  boolean x = true;
  System.out.println("Test Case 2");
  Assert.assertEquals(x, false);
 }
}

更新的答案: 是的,你是对的。 似乎没有简单的方法可以实现此目的。但是,我做了一些阅读后发现: https://www.seleniumeasy.com/testng-tutorials/skip-test-in-testng

如果优先级测试失败,则可以将此机制与ITestListener结合使用以跳过后续测试。尽管我不太确定如何运行,但是可以设计相同的逻辑。

您的最后一个选择是将ITestListener与Excel工作表结合使用,该工作表存储优先级测试的通过/失败状态并相应地跳过测试