【问题标题】:Extending JUnit 4.11: Unrooted Tests扩展 JUnit 4.11:无根测试
【发布时间】:2016-06-27 03:39:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 是的。这个问题是不同的。该问题可能与动态扩展测试用例套件有关。它缝合了一个几乎没有记录的边缘案例。我将进行模拟测试运行(仅使用不同的数据结构报告某些内容)并查看它是否正确显示。也许我得到了更深入的了解。我希望避免这种情况。

标签: java eclipse junit


【解决方案1】:

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

总而言之,代码比应有的更难阅读和理解。

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

【讨论】:

    猜你喜欢
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多