有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我使用TestNG和Maven建立了一个Java测试框架。我的测试通过TestNG XML文件组织成套件

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

我到底要怎么做?TestNG似乎没有提供任何在测试类之间传输信息的功能,我也不确定如何在Maven级别上实现。父类中的静态变量会起作用吗,还是会泄漏或导致太多线程安全问题

更新:我决定在父类中使用一个静态变量来解决我的问题(该类还包含关于正在运行的测试的各种状态)。对于我的用例,我不太可能在同一个JVM中并发运行父类的多个实例,而需要静态变量是线程安全的

然而,我仍然愿意接受关于如何实现这一目标的其他想法,因为我喜欢学习新事物


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    我认为您可以使用BeforeMethod注释,并在每次测试执行之前将内容置于所需的状态。通常不需要更多的“状态共享”