在 Eclipse 的 JUnit 运行器中使用 JUnit @Rule



Eclipse 3.7.2

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

我什至尝试使用像org.junit.rules.TestName这样的"标准"方法规则,但它无法正常工作(测试的名称未填充到实例中(。即使是 JavaDoc of TestName 中的示例测试在 Eclipse 中运行时也会失败。

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

事实证明,有人在相关项目的运行时类路径上包含一个看似"必需"的 JAR。该 JAR 嵌入了 JUnit 包,其中包括它不应该嵌入的 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.

相关内容

  • 没有找到相关文章

最新更新