今天遇到一个Spring Junit整合Log4j的小例子,控制台报了一个警告如下:
log4j:WARN No ppenders could be found for logger(org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这里的意思就是使用Junit的没时候没有加载log4j.properties配置文件。
我用的是maven创建的工程,所以我就在test测试目录下写了一个Junit4ClassRunner类,并继承了SpringJunit4ClassRunner这个类,使用静态代码块优先加载log4j配置文件。
import org.apache.log4j.PropertyConfigurator;
import org.junit.runners.model.InitializationError;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.io.InputStream;
public class Junit4ClassRunner extends SpringJUnit4ClassRunner {
static {
InputStream log4j = Junit4ClassRunner.class.getResourceAsStream("/log4j.properties");
PropertyConfigurator.configure(log4j);
}
public Junit4ClassRunner(Class<?> clazz) throws InitializationError {
super(clazz);
}
}
在测试代码中使用自己编写的Junit4ClassRunner类即可。
@RunWith(Junit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class Test_Spring {
@Resource(name = "accountService")
private AccountService service;
@Test
public void test_AccountService(){
Account account = new Account();
account.setId(12);
service.saveAccount(account);
}
}
来源:CSDN
作者:Z_RenYong
链接:https://blog.csdn.net/Z_RenYong/article/details/104125086