目标是提供完全相同的测试方法的不同变体(就像参数化测试一样)。问题是必要的测试运行的实际数量取决于并且是在旅途中发现的。
最初的想法是创建测试的子元素(子元素)(使用测试方法addChild
的描述对象)。
运行代码时Eclipse View显示所有已发现和执行的测试都位于“Unrooted Tests”下。使用description.getTestClass()方法描述测试方法的描述实例。
有没有人可以解释发生了什么,如果可能的话给出一个解决方案?
我扩展了BlockJUnit4ClassRunner。另外,使用Description.addChild
可以添加一个孩子。
答案 0 :(得分:1)
eclipse的测试运行器是一个名为RemoteTestRunner的自定义实现。从它的源代码我了解到,监听器机制不负责创建测试用例树,而是实际的Runner结构(getDescription)和实际的子节点。但同样不是描述的孩子,而是每个Runner实例的孩子。
总而言之,这些代码比应该更难阅读和理解。
因此,Unrooted测试用例只是由侦听器进程报告的测试,但无法与实际的Runner结构正确匹配。