如何在不干扰订单的情况下在TestNG中运行一组类?

时间:2017-08-10 09:21:12

标签: java testng

假设我有三个包,每个包有3个类。反过来,每个类都有3个@test方法,优先级从1到3。

我想从每个包中运行一个类文件。当我使用标签时,优先级= 1全部先执行。 我希望逐个类地运行测试,然后先说出class1的所有3个测试方法先执行,然后选择class2方法。我们怎样才能做到这一点?

我的当前订单运行所有优先级=首先是所有类的1个测试方法..

<test name="ClassTest" group-by-instances="true">

    <packages>
        <package name="com.presetup" />
        <package name="com.javahelper" />
    </packages>
    <classes>
        <class name="com.package1.class1" />
        <class name="com.package2.class2" /> 
        <class name="com.package3.class3" />
    </classes>
</test>

更新 解决方法我发现:

每个类都有不同的测试标记,因此每个类将一个接一个地运行

    <test name="1" group-by-instances="true">

    <packages>
        <package name="com.required" />

        <classes>
            <class name="com.package1.class1" />
        </classes>
        >
    </packages>
</test>

<test name="2">

    <packages>
        <package name="com.required" />
        <classes>
            <class name="com.package2.class2" />
        </classes>
        >
    </packages>
</test>

1 个答案:

答案 0 :(得分:0)

请在preserve-order="true"标记中添加<test>属性,然后重试。这基本上可以帮助您保留指定的测试顺序。

  

我想从每个包中运行一个类文件

据我所知,使用TestNG可以。您不能在给定时间点在多个包之间切换testng,从包中选择一个类并运行它们。为此,您需要使用TestNG API,其中您实例化TestNG对象,并通过代码,您需要读取包中的所有类,然后编写代码来执行此操作。没有任何东西可以满足这个开箱即用的问题。