当我们对分叉的JVM进程运行黄瓜测试时,每个测试都会立即被隔离,因此如果我们尝试使用任何类型的@before或@after,它将在每个单个jvm实例上运行,是的,我们可以在这里设置,它将在每个过程中毫无意义地执行......
我们怎样才能在分叉的JVM进程之前进入并执行单个方法,甚至在继续之前验证测试运行等?
在执行了所有JVM的所有测试后,同样应该进行一次运行。
这有一个简单的解决方案吗?
答案 0 :(得分:1)
答案:我最后编写了一个单独的测试,用于验证运行并执行所有runOnce类型代码,告诉surefire在主测试阶段之前运行此测试阶段,因此主要测试仅在验证通过时继续。
其他替代方案:我也写过的maven插件也有同样的想法。 其他选择:从maven获取JVM分叉数并将其设置为系统属性,执行一些操作,其中分叉数= = 1,例如暂停/休眠其他JVM,直到验证完成,然后继续(将需要更新外部源,如:
的属性文件canContinue = 0
在每个JVM上轮询,直到它为1继续
答案 1 :(得分:0)
看看gherkin using qaf。您可以拥有不同的侦听器,包括在套件执行之前运行的侦听器。您还可以使用@BeforeSuite
注释编写方法。