在Eclipse中使用JUnit@Rule';少年赛跑运动员

在Eclipse中使用JUnit@Rule';少年赛跑运动员,eclipse,junit,junit4,junit-runner,Eclipse,Junit,Junit4,Junit Runner,Eclipse 3.7.2 我刚刚在一些JUnit4测试中实现了一个@Rule,但是当我在Eclipse中运行它们时,不会调用MethodRule方法。这就像Eclipse测试运行程序不识别@Rule实现,也不对用@Rule注释的字段执行任何特殊操作一样 我甚至尝试使用一个“标准”的MethodRule,比如org.junit.rules.TestName,但它不能正常工作(测试的名称没有填充到实例中)。在Eclipse中运行时,即使是JavaDoc中的TestName示例测试也会失败 有什么把

Eclipse 3.7.2

我刚刚在一些JUnit4测试中实现了一个
@Rule
,但是当我在Eclipse中运行它们时,不会调用
MethodRule
方法。这就像Eclipse测试运行程序不识别
@Rule
实现,也不对用
@Rule
注释的字段执行任何特殊操作一样

我甚至尝试使用一个“标准”的MethodRule,比如
org.junit.rules.TestName
,但它不能正常工作(测试的名称没有填充到实例中)。在Eclipse中运行时,即使是JavaDoc中的
TestName
示例测试也会失败


有什么把戏吗?Eclipse不支持JUnit吗?

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


真是一团糟;现在,我们来看看谁应该为此受到50次鞭笞。

至少在我的Eclipse(嵌入式JUnit4.8)中应该是这样。 所以你可以展示你的代码

另外,JavaDoc说:
注意,MethodRule现在已不推荐使用,您应该改用TestRule。