我在xml文件中定义了一个TestNG测试套件。这个套件安装了套件监听器。
<listeners>
<listener class-name="com.my.package.MyListener"/>
</listeners>
在套件监听器的onStart()
中,我初始化了一些静态类成员。
是否保证稍后在套件中执行的所有测试用例都在触发onStart()
的同一JVM中执行,以便我在onStart()
中初始化的静态变量值可供所有人使用测试案例?
答案 0 :(得分:1)
是的,确实如此,将使用相同的JVM,因此所有类都可以使用相同的静态字段。
尽管如此,我发现当测试套件配置为使用多个并行线程(例如thread-count="5" parallel="tests"
)运行时,可能会出现一些初始化问题。
在我向侦听器类的onStart
方法添加同步后,问题没有再次发生:
public synchronized void onStart(ISuite suite) {
// Initialization code
}