当我运行我的 testng 套件时,有一些测试类需要被忽略。我尝试对需要忽略的类和方法使用 @Test(enabled=false) 注释。但我的问题是,需要忽略的类扩展了一个抽象类,并且即使我在基类上有 @Test(enabled=false) 注释,这个抽象类测试方法也不会被忽略。在 Junit 中,我可以在基类上使用 @ignore,并且扩展类上的测试方法根本不会被调用。我如何在 testng.txt 中复制这种行为?
另外,在我的 testng 套件中,我按包运行测试,而不是按类运行测试。因此,即使我尝试对班级进行分组并忽略该组,它也不起作用。<test name="Test">
<groups>
<run>
<exclude name="testClass"/>
</run>
</groups>
<packages>
请帮忙
我收到了塞德里克(Cedric)关于谷歌群组(Testng)的回复。我把它贴在下面供参考
Hi Paul,
您所看到的是 TestNG 中注释和默认属性的继承方式相互交互的不幸后果,并且已提交一个错误以使其更好地工作(我手头没有 id)。
考虑:
@Test(enabled = false)
public class C {
@Test
public void f()
}
当TestNG解析这些注释时,它发现方法上的@Test没有指定“enabled”,因此它为其分配默认值。该示例变为:
@Test(enabled = false)
public class C {
@Test(enabled = true)
public void f()
}
现在,在方法级别定义的值将覆盖在类上指定的值。
该修复将涉及使用枚举而不是布尔值(启用、禁用、继承,这将是默认值),但这会破坏向后兼容性,因此我需要为此引入一个新注释(例如“runStatus”或其他注释)像这样),你的例子就会变成
@Test(runStatus = DISABLED)
public class C {
@Test
public void f()
}
这有道理吗?
--
塞德里克
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)