assertNotEquals静态导入导致编译错误



我有一个编译没有错误的文件Foo.java。但是当我添加单行

import static org.junit.Assert.assertNotEquals;

这会在我的ant构建中导致以下错误:

compileTests:
[javac] Compiling 27 source files to C:examplebin
[javac] C:examplesrcFoo.java:7: error: cannot find symbol
[javac] import static org.junit.Assert.assertNotEquals;
[javac] ^
[javac]   symbol:   static assertNotEquals
[javac]   location: class
[javac] 1 error

我正在使用JUnit 4.4。junit-4.4.jar包含在javac任务的classpath

我已经尝试运行不同的编译器版本与标志-Dbuild.compiler=javac1.7-Dbuild.compiler=javac1.8,但它没有区别。我仍然得到完全相同的错误。

assertNotEquals是唯一一个从Assert中静态导入会导致此错误的。

我已经看到这个帖子Java静态导入导致编译错误。可能的编译错误?我试着自己导入Assert,并像这篇文章建议的那样,用Assert.前缀每个断言语句。我得到了同样的错误,这次是在Assert.assertNotEquals()的方法调用而不是import语句。

导入成功编译并在Eclipse上运行。

有人知道这是什么原因吗?我想弄清这一点,而不是必须实现一个变通的解决方案。

您正在使用Junit 4.4。AssertNotEquals直到4.11才添加

JUnit 4.11发布说明

如果您更新到最新的JUnit jar。编译器错误应该消失。Eclipse可能正在使用自己的内置版本,该版本具有最新的方法。

相关内容

  • 没有找到相关文章

最新更新