ant+Junit的单元测试无法启动spring容器

烤焦红薯 发布于 2016/12/12 15:51
阅读 593
收藏 0

解读下一代网络:算力网络正从理想照进现实!>>>

以下junit的单元测试启动了Spring容器,在eclipse运行正常

@Test
	public void add(){
        System.out.println("Spring begin");
		ApplicationContext ac = new ClassPathXmlApplicationContext(
        "applicationContext.xml");
		final ISpiderService jdtuhu = (ISpiderService) ac.getBean("JdTuhuService");
		System.out.println(jdtuhu.toString());
		jdtuhu.work();
	}



但是用Ant 脚本调用junit时无法加载spring容器,有遇到同样问题的吗?

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="junit">
	<property name="src.dir" location="src" />
	<property name="result.dir" location="target" />
	<property name="result.classes.dir" location="${result.dir}/classes" />
	<path id="classpath">
		<fileset dir="lib" includes="**/*.jar" />
	</path>
	
	<target name="junit">
			<junit fork="true" printsummary="yes" forkmode="once" jvm="F:\Java\jdk1.6\bin\java.exe">
				<classpath>
					<pathelement path="bin" />
					<fileset dir="lib">
						<include name="**/*.jar" />
					</fileset>
				</classpath>
				<batchtest fork="yes">
					<fileset dir="src">
						<include name="**/*JunitTest.java" />
					</fileset>
				</batchtest>
			</junit>
	</target>
	
</project>




加载中
0
烤焦红薯
烤焦红薯

自己找到了问题,junit的target修改输出信息 到控制台,添加<formatter type="xml"/>在项目的根目录输出xml格式的日志,具体修改成如下

<junit fork="true" printsummary="withOutAndErr" forkmode="once" jvm="F:\Java\jdk1.6\bin\java.exe">
                <classpath>
                    <pathelement path="bin" />
                    <fileset dir="lib">
                        <include name="**/*.jar" />
                    </fileset>
                </classpath>
<formatter type="xml"/>
<batchtest fork="yes">
                    <fileset dir="src">
                        <include name="**/*JunitTest.java" />
                    </fileset>
                </batchtest>
            </junit>



原来日志中错误信息为没有spring容器启动时找到servlet的包,加载时失败.在tomcat的lib目录下复制servlet-api.jar到待测工程lib下即可。

返回顶部
顶部