可以在Java中同步测试方法吗?

时间:2017-05-26 12:11:12

标签: java junit synchronization testng

与标题一样,是否可以并行运行同一测试类中的测试方法以加快测试过程?

目前正在使用Junit但计划最终切换到TestNG,所以请随意使用它们作为答案。

在功能测试(Selenium)的上下文中使用测试,并且由于测试检查生产服务器,因此使用多个线程来加速测试过程是没有问题的。

从我的搜索到目前为止,我已经确定使用TestNG我可以并行运行不同的类(包含测试方法),我想知道的是我是否可以在并行的同一测试类中运行方法而不是序列化方式。

1 个答案:

答案 0 :(得分:3)

TestNG中的并行化取决于套件中指定的模式。

<suite name="My suite" parallel="methods" thread-count="5">

只要它们不相互依赖,就会使5个方法同时在并行运行。 Dependend方法将等到所有依赖项在它们启动之前运行。其他模式是“测试”,“类”和“实例”。

如果您想在同一个xml中对不同的测试使用不同的线程,则可以将parellel属性添加到测试标记中,例如。

<suite name="default" thread-count="4">
    <test name="asa" parallel="methods">
        <classes>
            <class name="multiThreaded"/>
            <class name="multiThreaded"/>
        </classes>
    </test>
    <test name="asa" parallel="false">
        <classes>
            <class name="singleThreaded"/>
            <class name="singleThreaded"/>
        </classes>
    </test>
</suite>

参见http://testng.org/doc/documentation-main.html#parallel-tests 了解更多信息