testng:在方法之间共享实例变量时,运行并行=方法

问题描述 投票:4回答:2

大量搜索有关睾丸行为的生动答案,但直到现在才发现...

如果我使用parallel =“ methods”运行测试/套件,我的测试之一有3种方法(@Test方法),其中3种是共享相同的实例对象/实例变量(不是静态的!)。线程安全吗?testng完全分离了方法,因此每种方法都可以看到自己的共享实例变量?我的意思是,testng将为每个方法创建一个单独的类实例并运行?

java testng
2个回答
2
投票

[我假设您使用的是JUnit,并且我假设“实例变量(不是静态的!)”仅表示“测试夹具类成员”(或者甚至表示“测试用例局部变量”)。]]

然后答案是“否-他们将不会共享相同变量的相同实例”。 JUnit运行器将为每个测试用例和每个测试夹具创建不同的类实例。每个实例将并发运行,但是类成员将彼此独立。


0
投票

这是有关TestNG(不是JUnit)的问题,答案是:否-这不是线程安全的;类成员的实例在并行测试之间共享。

© www.soinside.com 2019 - 2024. All rights reserved.