testNG:类级别组依赖项不起作用

时间:2014-05-29 10:06:07

标签: java testing testng

我的目标是在套件中首先进行测试。 我想使用对组功能的依赖。

我有以下结构:

@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组。

请求任何帮助。

3 个答案:

答案 0 :(得分:0)

如果您只是想在所有测试之前执行“setup”方法,则不需要使用依赖项。删除类级别注释并使“SingleTargetCreateTester”扩展“TestConfig”。就是这样。

答案 1 :(得分:0)

您是从xml文件还是从测试文件运行测试。它看起来像是从测试文件? 尝试从xml文件。

答案 2 :(得分:0)

@BeforeSuite在套件开始时运行一次。您可以从TestConfig中删除组。只需将TestConfig类保留在xml中。那应该是它。从其他类中删除依赖项。

您可以根据需要添加任意数量的课程。 Testng将考虑整个xml,然后制作一个执行图,其中beforesuite只执行一次。

HTH