如何在TestNG和Maven的套件中的测试类之间共享状态?

时间:2015-04-14 21:16:23

标签: java maven testng

我使用TestNG和Maven设置了Java测试框架。我的测试通过TestNG XML文件组织成套件。

我想在同一套件中的不同测试类之间共享状态。具体来说,我想分享一个“测试计划”的ID。在测试套件执行开始时在我的TestRail测试用例管理器中创建。

我到底该怎么做? TestNG似乎没有提供在测试类之间传输信息的任何功能,我也不确定如何在Maven级别执行此操作。父类中的静态变量是否有效,或者是否会泄漏或导致太多的线程安全问题?

更新我决定通过在我的父类中使用静态变量来解决我的问题(它还包含有关正在运行的测试的各种状态)。对于我的用例,我不太可能在同一个JVM中以一种需要静态变量为线程安全的方式同时运行父类的多个实例。

然而,我仍然对如何实现这一点的其他想法持开放态度,因为我喜欢学习新事物。

2 个答案:

答案 0 :(得分:0)

我认为你可以使用BeforeMethod注释并在每次测试执行之前将这些东西放入所需的状态。通常不需要更多的“国家共享”。

答案 1 :(得分:0)

我决定使用父类的静态成员为我的测试类解决这个问题。我不认为这是最好的解决方案,但它适用于我所关注的用例。