扩展JUnit 4.11:无根测试

时间:2015-12-10 16:52:11

标签: java eclipse junit

目标是提供完全相同的测试方法的不同变体(就像参数化测试一样)。问题是必要的测试运行的实际数量取决于并且是在旅途中发现的。

最初的想法是创建测试的子元素(子元素)(使用测试方法addChild的描述对象)。

运行代码时Eclipse View显示所有已发现和执行的测试都位于“Unrooted Tests”下。使用description.getTestClass()方法描述测试方法的描述实例。

有没有人可以解释发生了什么,如果可能的话给出一个解决方案?

我扩展了BlockJUnit4ClassRunner。另外,使用Description.addChild可以添加一个孩子。

1 个答案:

答案 0 :(得分:1)

eclipse的测试运行器是一个名为RemoteTestRunner的自定义实现。从它的源代码我了解到,监听器机制不负责创建测试用例树,而是实际的Runner结构(getDescription)和实际的子节点。但同样不是描述的孩子,而是每个Runner实例的孩子。

总而言之,这些代码比应该更难阅读和理解。

因此,Unrooted测试用例只是由侦听器进程报告的测试,但无法与实际的Runner结构正确匹配。