我们如何在分叉的 JVM 进程中使用 Cucumber JVM 运行 something once before/after?
How can we run something once before/after using CucumberJVM on forked JVM processes?
当我们 运行 对分叉的 JVM 进程进行 cucumber 测试时,每个测试几乎都会立即被隔离,因此如果我们尝试使用任何类型的 @before 或 @after 它会 运行 在 每个单个jvm实例,是的,我们可以在这里设置,它将毫无意义地在每个进程上执行...
我们如何在分叉的 JVM 进程之前进入并执行单个方法甚至在继续之前验证测试 运行?
在所有 JVM 上的所有测试都已执行后,运行 也应如此。
有没有简单的解决方案?
看看gherkin using qaf。在执行套件之前,您可以拥有不同的侦听器,包括 运行 的侦听器。您也可以使用 @BeforeSuite
注释编写方法。
答案:我最终编写了一个单独的测试来验证 运行 并完成了所有 运行Once 类型的代码,在主要阶段之前告诉 surefire 运行 这个测试阶段所以主要测试只有在验证通过时才会继续。
其他选择:我也写过的 maven 插件也有同样的想法。
其他选择:从 Maven 获取 JVM 分叉号并将其设置为系统 属性,执行一些操作,例如分叉号 == 1 并暂停/休眠其他 JVM,直到完成验证,然后继续(将需要更新外部源,例如具有以下内容的属性文件:
可以继续=0
轮询每个 JVM,直到为 1 以继续
当我们 运行 对分叉的 JVM 进程进行 cucumber 测试时,每个测试几乎都会立即被隔离,因此如果我们尝试使用任何类型的 @before 或 @after 它会 运行 在 每个单个jvm实例,是的,我们可以在这里设置,它将毫无意义地在每个进程上执行...
我们如何在分叉的 JVM 进程之前进入并执行单个方法甚至在继续之前验证测试 运行?
在所有 JVM 上的所有测试都已执行后,运行 也应如此。
有没有简单的解决方案?
看看gherkin using qaf。在执行套件之前,您可以拥有不同的侦听器,包括 运行 的侦听器。您也可以使用 @BeforeSuite
注释编写方法。
答案:我最终编写了一个单独的测试来验证 运行 并完成了所有 运行Once 类型的代码,在主要阶段之前告诉 surefire 运行 这个测试阶段所以主要测试只有在验证通过时才会继续。
其他选择:我也写过的 maven 插件也有同样的想法。 其他选择:从 Maven 获取 JVM 分叉号并将其设置为系统 属性,执行一些操作,例如分叉号 == 1 并暂停/休眠其他 JVM,直到完成验证,然后继续(将需要更新外部源,例如具有以下内容的属性文件:
可以继续=0
轮询每个 JVM,直到为 1 以继续