是否可以确保某些特定的TestNG测试在同一线程中运行?

时间:2018-09-27 13:33:53

标签: multithreading testng

我的xml文件中有这样的测试-

<test name="1. Test 1">
    <classes>
        <class name="some class">
            <methods>
                <include name="some method" />
            </methods>
        </class>
    </classes>
</test>

<test name="2. Test 2">
    <classes>
        <class name="some class">
            <methods>
                <include name="some method" />
            </methods>
        </class>
    </classes>
</test>

<test name="3. Test 3">
    <classes>
        <class name="some class">
            <methods>
                <include name="some method" />
            </methods>
        </class>
    </classes>
</test>

我正在使用<ThreadLocal>存储一些我将在后续测试中使用的全局参数,但是从属测试有时会在并行执行中的不同线程中运行,因此我无法在该不同线程中检索参数。如何确保特定测试仅在特定线程中运行?

注意::我知道从属测试不是理想的设计,但我必须这样做。另外,每个<test>标签中只能包含一种方法,因为我们的内部报告系统仅支持将这种格式的测试写入xml文件。

一个简单的解决方案是将参数存储在某些属性文件中并从那里检索。

欢迎使用其他任何解决方案。

有一个singlethreaded的概念,但它是在类级别定义的。我正在寻找类似的东西,但灵活性更高,例如对组执行此操作,以便可以将要在单个线程中运行的测试合并到一个组中,并将该组定义为在同一线程中运行。

0 个答案:

没有答案