我正在试验testng。我的目标是在几个类中有测试方法,并在一个单独的类中准备和总结一堆测试的“支持”方法。
另一个要求是,在测试套件中,必须为多个测试部分调用支持方法。例如,第一部分包含 testA 和 testB,第二部分包含 testC 和 testD。这将导致以下步骤:
支持1,测试A,测试B,支持2,支持1,测试C,测试D,支持2
我(部分)工作的第一种方法是用 注释所有方法@Test
,使用组并定义组之间的依赖关系,例如测试方法依赖于组“setUp”,它是上面示例中的一个支持方法“support1”的组.
这种方法的问题是支持方法算作测试,因此生成的报告显示错误数量的“真实”测试。
下一个想法是使用@BeforeGroups
and @AfterGroups
,将支持的方法放在一个组中,并使用组依赖项。支持的方法不应再被视为测试。但我一开始就被困住了。例如我试过
@BeforeGroups (groups = {"setUp"})
对于类中的设置方法Support
,以及
@Test(groups = { "TestA" }, dependsOnGroups = { "setUp" })
在“真正的”测试课上。这会导致以下(简化的)错误:
[testng] DependencyMap::Method "TestClass.testSomething()[...]" depends on nonexistent group "setUp"
为什么组“setUp”不存在?我忽略了什么吗?
还是有另一种可行的方法?
谢谢你的帮助!
编辑: 测试是从 Ant 开始的,我使用这样的 testng.xml:
<test name="TestA">
<groups>
<run>
<include name="setUp" />
<include name="TestA"/>
<include name="tearDown"/>
</run>
</groups>
<classes>
<class name="seleniumtest.test.technical.Support"/>
<class name="seleniumtest.test.business.TestClassA"/>
</classes>
</test>
<test name="TestB">
<groups>
<run>
<include name="setUp" />
<include name="TestB"/>
<include name="tearDown"/>
</run>
</groups>
<classes>
<class name="seleniumtest.test.technical.Support"/>
<class name="seleniumtest.test.business.TestClassB"/>
</classes>
</test>