尝试从 maven(maven surefire 插件)运行 junit 测试时,出现以下错误:
java.lang.NoSuchFieldError: NO_FORMAT
此错误似乎来自对我的 log4j 记录器的任何调用。因此,当我有一个带有 log4j 类变量的类时log
,例如:
public class SomeClass {
private Logger log = Logger.getLogger(SomeClass.class);
....
}
然后打电话给
log.info(String msg);
导致上述错误。我试图确保在运行 junit 测试时设置了基本配置,例如
@Before
public void setup() {
BasicConfigurator.configure();
someclass = new SomeClass();
}
但这并不能解决这个问题。删除所有log
调用可以解决问题,但这不是一个很好的解决方案。
知道为什么会出现这个问题吗?非常感谢。