TestNG - 如何在没有并行进程的情况下运行包

时间:2013-07-30 17:41:59

标签: selenium testng

下面的我的TestNG配置无效:

<test verbose="2" name="JavaScript Layer Tests" preserve-order="true" parallel="false">
  <packages>
    <package name="com.bla.foo"/>
    <package name="com.bla.bar/>
  </packages>
</test>

我基本上想要按顺序运行这些包中的TestNG类,并且没有并行性。每个类的方法都使用@dependsOnMethods

这里的原因是我使用的是Selenium,我需要一次只打开一个浏览器。

如果我切换TestNG的xml文件列出所有类,那么它工作正常,但这使得添加新类需要更改xml文件。

有没有办法让它适用于包?我尝试将并行设置为true并限制为1个线程,但这也不起作用。

2 个答案:

答案 0 :(得分:0)

让我猜一下,您可以使用Eclipse运行此TestNG文件。无需在xml中配置什么,您必须检查是否在IDE中运行配置。如果你试图用你的XML在'test'mode中运行测试,但你的IDE可以在'class'mode或'methods'模式中运行它。请交叉检查一次。

更新:我不认为parallel属性将值视为false,请参阅official documentations。只需删除该属性,然后尝试如下,

<test verbose="2" name="JavaScript Layer Tests" preserve-order="true">
  <packages>
    <package name="com.bla.foo"/>
  </packages>
  <packages>
    <package name="com.bla.bar/>
  </packages>
</test>

注意:确保每个包只有一个TestNG类文件。

答案 1 :(得分:0)

我们可以按以下方式指定包。希望这有帮助

<suite>
    <test name="Any logical name" preserve-order="true" verbose="2">
        <packages>
            <package name="Name of the package 1" />
        </packages>
    </test>

    <test name="Any logical name" preserve-order="true" verbose="2">
            <packages>
                <package name="Name of the package 2" />
            </packages>
        </test>
</suite>