日食3.7.2

我刚刚实施了一个 @Rule 在一些 JUnit 4 测试中,但是当我在 Eclipse 中运行它们时 MethodRule 方法没有被调用。就像 Eclipse 测试运行程序无法识别 @Rule 实现并且不会对带有注释的字段执行任何特殊操作 @Rule.

我什至尝试使用“标准”MethodRule,例如 org.junit.rules.TestName 但它无法正常工作(测试的名称未填充到实例中)。甚至 JavaDoc 中的示例测试 TestName 在 Eclipse 中运行时失败。

有什么技巧吗?Eclipse 根本不支持 JUnit 规则?

有帮助吗?

解决方案

事实证明,有人在相关项目的运行时类路径中包含了一个看似“必需”的 JAR。该 JAR 嵌入了 JUnit 包(除其他不应嵌入的内容外)!所以就有了这个 JAR,命名为一些无害的东西,比如 our_runtime_library.jar 其中有一些特定于应用程序的代码以及一些未知(但旧)版本的 JUnit、Spring 以及谁知道还有什么。当将项目作为单元测试运行时,Eclipse 会选择该 JAR 中的 JUnit,而不是它自己的版本(项目特定的库始终优先),即项目构建所针对的 (Eclipse) 版本。

真是一团糟;现在我们来看看谁应该因为这件事被鞭打 50 下。

其他提示

它应该可以工作,至少在我的 Eclipse 中(在嵌入式 JUnit 4.8 中)。所以你可以展示你的代码。

另外,JavaDoc 说: Note that MethodRule is now deprecated, you should be using TestRule instead.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top