背景
我们的Test-Suite使用基于JUnit的内部开发的测试框架。我们的一些测试使用JUnit的参数化功能来测试各种不同的测试数据,例如:布局测试(我们使用Galen Framework),我们希望在不同的窗口分辨率下验证正确的行为。
我们的TestCaseRule应用于基类中的所有测试,将失败的测试保存到数据库中,我们可以通过Web界面浏览失败的测试。
问题:
JUnit的Parameterized Runner为每个失败的测试+参数组合创建一个失败实例。
这意味着,如果我有一个例如3个测试的类,并且每个测试运行6次(6个参数),如果所有测试都失败,我的报告中将失败6x3 = 18,而不是(期望)3。因此,我们的报告具有完全不同的含义,变得毫无用处......
所需
我已经google了很多,但遗憾的是找不到任何人面临同样的问题。对我来说最好的解决方案是,如果我能让JUnit合并所有方法的每个失败并连接堆栈跟踪,那么我真的可以确保一个方法最多导致1个失败。我也不想跳过所有以下测试,因此我不会错过将在不同参数上生成的失败。
我尝试了反思;在@Before方法中获取参数数据,迭代测试方法,注入参数并最终预先确定要执行的实际测试,但它非常hacky并且由于其测试范围缺乏而不代表可接受的解决方案。 / p>
我感谢所有帮助尝试!