我在 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 约定。