我正在配置自己的Spring测试运行程序,并试图定义测试执行顺序。但是我想在这个过程中根据一些测试用例的失败来改变它。每个测试用例配置都有自己的id和onFailId,它们指示在发生故障时要执行的下一个测试的id。如果测试通过,只需执行带有下一个id的测试。当我想重新运行或再次执行早期测试时,可能会出现一些情况。
如何强制这种逻辑,例如在测试失败侦听器中?
发布于 2014-08-22 05:51:08
我想出并实现了一个解决方案。仅在运行测试套件之前定义排序方法是不够的。这里提到的所有方法(例如,How to run test methods in specific order in JUnit4? in junit4 )只允许在执行之前设置order 。
默认情况下,我必须在运行程序(即SpringJUnit4ClassRunner )中重载SpringJUnit4ClassRunner方法,它调用runChlidren (私有方法),该方法在一个循环中运行所有子测试。
如果用自己的代码替换此循环,则可以在每次测试执行后指定附加逻辑,例如选择要运行的下一个测试。
https://stackoverflow.com/questions/25063674
复制