我有一个文件Foo.java
编译没有错误。但是当我添加单行
import static org.junit.Assert.assertNotEquals;
这导致我的ant build出现以下错误:
compileTests:
[javac] Compiling 27 source files to C:\example\bin
[javac] C:\example\src\Foo.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
任务的classpath
中包含javac
。
我尝试使用标记-Dbuild.compiler=javac1.7
和-Dbuild.compiler=javac1.8
运行不同的编译器版本,但它没有任何区别。我仍然得到完全相同的错误。
assertNotEquals
是Assert中唯一导致此错误的静态导入。
我已经看过这篇文章Java static import causing compile error. Probable compiler bug?
我尝试单独导入Assert
并使用Assert.
添加每个断言语句,就像这篇帖子所建议的那样。我得到了同样的错误,这次是在Assert.assertNotEquals()
的方法调用而不是import语句。
然而,导入成功编译并在Eclipse上运行。
有没有人对此事有任何想法?我想深入了解这一点,而不必实施解决方案。
答案 0 :(得分:4)
您使用的是Junit 4.4。直到4.11才添加AssertNotEquals
如果您更新到最新的JUnit jar。编译器错误应该消失。 Eclipse可能正在使用自己的内置版本,它具有最新的方法。