我正在使用TestNG 6.8.5。有没有办法跨测试跨越dependsOnGroups或dependsOnMethods,而不是只在一个测试中?
我有一个像这样配置的套件,有两个测试和一组其他测试:
<suite name="ConfigurationSuite">
<test name="DeviceMgmtTest_Setup" >
<classes>
<class name="com.yay.DeviceMgmtTest">
<methods>
<include name="createDevice" />
<include name="discoverDevice" />
</methods>
</class>
</classes>
</test>
<!-- A whole bunch of other very sequential
and long-running tests go here... -->
<test name="DeviceMgmtTest_TearDown" >
<classes>
<class name="com.yay.DeviceMgmtTest">
<methods>
<include name="deleteDevice" />
</methods>
</class>
</classes>
</test>
</suite>
我的测试类的配置方法如下:
@Test(groups = { "setup" })
public void createDevice() {
// do something
}
@Test(groups = { "setup" })
public void discoverDevice() {
// do something
}
@Test(groups = { "tearDown" }, dependsOnGroups = { "setup" })
public void deleteDevice() {
// When TestNG reaches this method I get a
// group "setup" does not exist type exception (see below)
}
但是当我运行套件时,dependsOnGroups注释失败并出现如下错误:
[ERROR] org.testng.TestNGException:
[ERROR] DependencyMap::Method .... DeviceMgmtTest depends on nonexistent group "setup"
也许我没有正确理解如何配置我的套件(我是TestNG的新手),但将这些关注区域分成单独的测试对我来说是有意义的。
感谢您的任何指导或建议!
编辑:我正在考虑的一个解决方案是抓取TestNG ITestContext并导航到父套件,然后检查以前测试的状态。我只是觉得可能会有更优雅的TestNG惯例。
答案 0 :(得分:3)
不可能依赖不同类别的方法。
但是,绝对可以依赖来自不同班级的小组。如果您想使用XML,那么这是其文档:http://testng.org/doc/documentation-main.html#dependencies-in-xml
答案 1 :(得分:1)
我认为根据你的示例代码是什么..你想要的是你的拆解应该在你的设置和测试之后执行。您可能想完全放弃并尝试使用preserve-order = true。因此,您甚至无需设置它,因为它是默认设置,并且testng按照您在xml中找到的顺序运行测试。