目标是提供相同测试方法的不同变体(就像参数化测试一样)。问题在于,必要的测试运行的实际数量取决于并且是在运行过程中发现的。
最初的想法是创建测试的子元素(子元素)(使用测试方法 addChild
的描述对象)。
运行代码时,Eclipse View 显示所有发现和执行的测试都位于“Unrooted Tests”下。使用测试方法的 Description 实例的description.getTestClass() 方法来描述测试。
有谁可以解释发生了什么,如果可能的话给出解决方案?
我扩展了 BlockJUnit4ClassRunner。还可以通过使用 Description.addChild
添加一个子项。
最佳答案
eclipse 的测试运行器是一个名为 RemoteTestRunner 的自定义实现。从其源代码中我了解到监听器机制不负责创建测试用例树,而是负责创建实际的 Runner 结构 (getDescription) 和实际的子级。但同样不是描述的子代,而是每个 Runner 实例的子代。
总而言之,代码比应有的情况更难阅读和理解。
因此,无根测试用例只是监听器进程报告的测试,但无法与实际的 Runner 结构正确匹配。
关于java - 扩展 JUnit 4.11 : Unrooted Tests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207435/