使用新的程序状态运行Maven Failsafe的集成测试

时间:2014-07-23 20:40:34

标签: java maven integration-testing

由于程序状态被重用(而不是在自己的状态下运行每个入口点),我发现我的Jenkins服务器上的测试失败了。换句话说,一个测试有副作用导致另一个测试失败

我的两个测试修改了一些静态变量。一个取决于它是默认值。另一个测试更改变量的事实导致测试失败。测试的方式永远不应该在相同的程序状态下运行(这些程序从入口点到出口测试程序)。

如何让Maven独立运行每个测试?

可能相关的信息:

  • Maven版本3.2.2
  • 故障安全版本2.6
  • Failsafe的执行目标是integration-testverify
  • 测试只是JUnit 4.11测试
  • 在Linux和OS X上确认了行为
  • 使用Java 1.8.0_05
  • 没有使用模块。我们正在使用clean integration-test运行集成测试(我现在意识到它应该是clean verify,但这对此问题并不重要)
  • 我猜他们真的更喜欢系统测试

1 个答案:

答案 0 :(得分:0)

根据您的问题,你可以fork new vm 如何让Maven独立运行每个测试?,你想要什么。

在集成测试中,它是故障安全插件,并且存在相同的参数(forkCount等),所以我猜你可以分叉虚拟机。

[edit]因为forkCount默认为1,所以你应该将reuseForks参数设置为false。