eclipse+maven+junit单元测试问题总结

(一)创建工程

1.1创建步骤很简单,网上也有很多说明,在此就不赘述,只说明一点:eclipse+maven+junit单元测试问题总结_第1张图片

如果创建的是应用程序,则选择第1个,如果创建的是web工程,则选择第2个;

1.2创建完工程之后,工程结构如下:

eclipse+maven+junit单元测试问题总结_第2张图片

如果src/main/java,src/main/resources,src/test/java,src/test/resources这几个目录缺少,手动添加即可;

(二)单元测试引发的问题

测试框架:spring-test+junit,单元测试类如下

package com.jimmy.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.jimmy.testSpring.StudentDao;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext-test.xml"})
public class StudentDaoTest extends AbstractJUnit4SpringContextTests {

 	@Autowired private StudentDao studentDao; 	
 	@Autowired private ApplicationContext ctx;
	
	@Test
	public void test(){
		studentDao.testAutowired();
	}
	
	@Test
	public void test1(){		
		StudentDao dao = ctx.getBean(StudentDao.class);
		dao.testAutowired();
	}
}

测试所用配置文件路径:

eclipse+maven+junit单元测试问题总结_第3张图片

2.1、一切看起来没有任何问题,但是当我执行JUnit测试时,报错:找不到applicationContext-test.xml文件,这就很纳闷了,于是我查看文件系统,发现配置文件都没有加载到test-classes目录下:

eclipse+maven+junit单元测试问题总结_第4张图片

解决方法:选中项目-->右键选择“properties”-->"java build path",如下图所示:

eclipse+maven+junit单元测试问题总结_第5张图片

原来在这里/src/test/resources目录下的文件输出到了default output folder,而default output folder定义为MavenTest/target/classes,所以测试配置文件没有加载到test-classes目录下,程序自然报错找不到文件了。

注意:3标示处有的时候excluded的值是*,这表示将所有文件排除了,所以要修改为(None)。

接下来选中上图1标示处,再点击2处“edit”,如下图所示

eclipse+maven+junit单元测试问题总结_第6张图片

选中红框标示处,再配置路径,这样测试配置文件就能加载到/target/test-classes目录下了。

2.2、我再次运行junit测试,结果还是报错:NoClassDefFoundError: org/junit/runners/model/MultipleFailureException出现这个问题的原因时junit版本过低,于是我将junit版本换成4.12的,再次运行成功。

(三)启动工程日志输出路径出错引发的思考

该工程日志配置文件路径

eclipse+maven+junit单元测试问题总结_第7张图片

第一个是工程正式使用的,第二个是测试时使用的,启动工程后运行发现日志打在了log-test.log上,而log.log没有日志内容,找了半天没有找到原因,我就在发布路径下瞧了瞧,发现了问题所在:

eclipse+maven+junit单元测试问题总结_第8张图片

/src/test/resources目录下的配置文件也部署到了WEB-INF\classes目录下,

解决方法:选中项目-->右键选择“properties”-->deployment assembly ”,eclipse+maven+junit单元测试问题总结_第9张图片

选中红框的两项点击右边的“remove”即可。

还是要自己多动手呀,书上看到的表面上是掌握了,但是实际操作会遇到各种小问题,自己动手了才能发现问题,解决了问题自己也进步了。

你可能感兴趣的:(springMVC,java,eclipse)