我使用TestNG和Maven设置了Java测试框架。我的测试通过TestNG XML文件组织成套件。
我想在同一套件中的不同测试类之间共享状态。具体来说,我想分享一个“测试计划”的ID。在测试套件执行开始时在我的TestRail测试用例管理器中创建。
我到底该怎么做? TestNG似乎没有提供在测试类之间传输信息的任何功能,我也不确定如何在Maven级别执行此操作。父类中的静态变量是否有效,或者是否会泄漏或导致太多的线程安全问题?
更新我决定通过在我的父类中使用静态变量来解决我的问题(它还包含有关正在运行的测试的各种状态)。对于我的用例,我不太可能在同一个JVM中以一种需要静态变量为线程安全的方式同时运行父类的多个实例。
然而,我仍然对如何实现这一点的其他想法持开放态度,因为我喜欢学习新事物。
答案 0 :(得分:0)
我认为你可以使用BeforeMethod
注释并在每次测试执行之前将这些东西放入所需的状态。通常不需要更多的“国家共享”。
答案 1 :(得分:0)
我决定使用父类的静态成员为我的测试类解决这个问题。我不认为这是最好的解决方案,但它适用于我所关注的用例。