Java 当执行xml中定义的测试套件时,是否可以假设套件中的所有测试都在同一JVM中执行?

Java 当执行xml中定义的测试套件时,是否可以假设套件中的所有测试都在同一JVM中执行?,java,testng,Java,Testng,我在xml文件中定义了一个TestNG测试套件。此套件已安装套件侦听器 <listeners> <listener class-name="com.my.package.MyListener"/> </listeners> 在套件侦听器的onStart中,我初始化了一些静态类成员 是否可以保证以后在套件中执行的所有测试用例都在启动onStart的同一JVM中执行,以便我在onStart中初始化的静态变量值对所有测试用例都可用?是的,确实会使用相同的J

我在xml文件中定义了一个TestNG测试套件。此套件已安装套件侦听器

<listeners>
    <listener class-name="com.my.package.MyListener"/>
</listeners>
在套件侦听器的onStart中,我初始化了一些静态类成员


是否可以保证以后在套件中执行的所有测试用例都在启动onStart的同一JVM中执行,以便我在onStart中初始化的静态变量值对所有测试用例都可用?

是的,确实会使用相同的JVM,因此所有类都可以使用相同的静态字段

然而,我发现,当测试套件配置为使用多个并行线程运行时,可能会出现一些初始化问题,例如线程计数=5并行=测试

在我将同步添加到侦听器类的onStart方法后,问题没有再次出现:

public synchronized void onStart(ISuite suite) {
    // Initialization code
}