java - 扩展 JUnit 4.11 : Unrooted Tests

标签 java eclipse junit

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

最初的想法是创建测试的子元素(子元素)(使用测试方法 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/

相关文章:

java - 用于执行一种方法的 JUnit 套件运行程序

java - Swing 应用程序的 Junit 测试用例

java - 运行测试时从类路径中排除src/main/resources

java - Xtext 自动完成与限定名称定制

java - 当数组由类中的字段组成时,我应该在每个元素上使用 Objects.equals() 而不是 Arrays.equals() 吗?

java - 使用 JNI、多线程从 Fortran 调用 Java

java - 将 vector 从 Matlab 传递到 Scala 类

eclipse - 运行 JUnit 插件测试时防止启动 eclipse GUI

Java:尝试使用外部 .jar 库时 Eclipse 中出现 NoClassDefFoundError

java - 如何删除 Jtable 标题网格线