(一)创建工程
1.1创建步骤很简单,网上也有很多说明,在此就不赘述,只说明一点:
如果创建的是应用程序,则选择第1个,如果创建的是web工程,则选择第2个;
1.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();
}
}
测试所用配置文件路径:
2.1、一切看起来没有任何问题,但是当我执行JUnit测试时,报错:找不到applicationContext-test.xml文件,这就很纳闷了,于是我查看文件系统,发现配置文件都没有加载到test-classes目录下:
解决方法:选中项目-->右键选择“properties”-->"java build path",如下图所示:
原来在这里/src/test/resources目录下的文件输出到了default output folder,而default output folder定义为MavenTest/target/classes,所以测试配置文件没有加载到test-classes目录下,程序自然报错找不到文件了。
注意:3标示处有的时候excluded的值是*,这表示将所有文件排除了,所以要修改为(None)。
接下来选中上图1标示处,再点击2处“edit”,如下图所示
选中红框标示处,再配置路径,这样测试配置文件就能加载到/target/test-classes目录下了。
2.2、我再次运行junit测试,结果还是报错:NoClassDefFoundError: org/junit/runners/model/MultipleFailureException出现这个问题的原因时junit版本过低,于是我将junit版本换成4.12的,再次运行成功。
(三)启动工程日志输出路径出错引发的思考
该工程日志配置文件路径
第一个是工程正式使用的,第二个是测试时使用的,启动工程后运行发现日志打在了log-test.log上,而log.log没有日志内容,找了半天没有找到原因,我就在发布路径下瞧了瞧,发现了问题所在:
/src/test/resources目录下的配置文件也部署到了WEB-INF\classes目录下,
解决方法:选中项目-->右键选择“properties”-->“deployment assembly ”,
选中红框的两项点击右边的“remove”即可。
还是要自己多动手呀,书上看到的表面上是掌握了,但是实际操作会遇到各种小问题,自己动手了才能发现问题,解决了问题自己也进步了。