我的目标是在套件中首先进行测试。 我想使用对组功能的依赖。
我有以下结构:
@Test(groups={"init"})
public class TestConfig
{
@BeforeSuite
public void setup()
{
SuiteManager.instance().init(...);
}
}
然后调用依赖项的类:
@Test(dependsOnGroups={"init"})
public class SingleTargetCreateTester
{
@Test
public void testSingleTarget()
{
....
}
}
TestSuite.xml
<suite name="My Test Suite">
<test name="SingleTargetTester">
<parameter name="target_quantity" value="2" />
<classes>
<class name="com.integration.testers.TestConfig" />
<class name="com.integration.testers.SingleTargetCreateTester" />
</classes>
</test>
</suite>
它首先进入TestConfig,但是当运行SingleTargetCreateTester时它失败并出现以下错误:
DependencyMap::Method "SingleTargetCreateTester.testSingleTarget()[pri:0, instance:com.integration.testers.SingleTargetCreateTester@2353f67e]" depends on nonexistent group "init"
似乎无法识别init组。
请求任何帮助。
答案 0 :(得分:0)
如果您只是想在所有测试之前执行“setup”方法,则不需要使用依赖项。删除类级别注释并使“SingleTargetCreateTester”扩展“TestConfig”。就是这样。
答案 1 :(得分:0)
您是从xml文件还是从测试文件运行测试。它看起来像是从测试文件? 尝试从xml文件。
答案 2 :(得分:0)
@BeforeSuite在套件开始时运行一次。您可以从TestConfig中删除组。只需将TestConfig类保留在xml中。那应该是它。从其他类中删除依赖项。
您可以根据需要添加任意数量的课程。 Testng将考虑整个xml,然后制作一个执行图,其中beforesuite只执行一次。
HTH