提问者:小点点

TestNG测试的条件跳过


我对TestNG注释没有太多经验,但是我正在尝试使用TestNG框架和零售网站的POM设计模式构建一个测试套件。我计划使用数据驱动的方法。我的计划是通过excel驱动我的测试场景,而不是使用testng. xml。

例如,我将有许多测试套件,这些测试套件只不过是包名称TestSuite下的各种类文件。测试套件名称将在Excel中列出,用户将被允许通过将运行模式更改为TRUE/FALSE来设置测试套件的运行模式。在这里,我计划实施一个条件检查,看看运行模式是否为FALSE,并相应地跳过测试套件,即测试套件类。

我们是否有任何直接的方法来使用TestNG实现相同的目标,或者请通过一个小例子提出相同的解决方案。


共3个答案

匿名用户

请在测试开始时添加以下代码行,这将跳过您的测试用例

throw new SkipException("Skipping the test case");

匿名用户

您可以使用TestNG的注释转换器将@Test注释的禁用属性设置为true或false。

示例:

public class MyTransformer implements IAnnotationTransformer {
    public void transform(ITest annotation, Class testClass,
        Constructor testConstructor, Method testMethod){

        if (isTestDisabled(testMethod.getName()))) {
            annotation.setEnabled(false);
        }
    }

    public boolean isTestDisabled(String testName){
       // Do whatever you like here to determine if test is disabled or not
    }
}

匿名用户

从6.13开始抛出新的SkipException(“跳过测试用例”);不起作用。我必须在抛出异常之前设置状态,否则测试状态将是失败而不是跳过:

iTestResult. setStatus(TestResult.SKIP);抛出新的SkipException(“跳过测试用例”);

可能会在下一个版本中修复/更改,详情请参阅https://github.com/cbeust/testng/issues/1632。