【问题标题】:Can I change junit test execution order?我可以更改 junit 测试执行顺序吗?
【发布时间】:2014-09-23 16:19:05
【问题描述】:

我正在配置自己的 Spring 测试运行器,并尝试定义测试执行顺序。但是我想根据一些测试用例的失败在这个过程中改变它。每个测试用例配置都有自己的 id 和 onFailId,指示在失败的情况下要执行的下一个测试的 id。如果测试通过,只需执行具有下一个 id 的测试。在某些情况下,我想重新运行或再次执行之前的测试。

如何强制执行此逻辑,例如在测试失败监听器中?

【问题讨论】:

标签: java spring junit integration-testing


【解决方案1】:

我想出了并实施了一个解决方案。在运行测试套件之前定义排序方法是不够的。提到的所有方法,例如这里 How to run test methods in specific order in JUnit4? 在 junit4 中只允许设置执行前的顺序。

我不得不在我的运行器中重载 childrenInvoker 方法 - 即 SpringJUnit4ClassRunner - 默认情况下,它调用 runChlidren(私有方法),它在循环中运行所有子测试。

如果您用自己的代码替换此循环,您可以在每次测试执行后指定额外的逻辑 - 例如选择要运行的下一个测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多