`
freshunter
  • 浏览: 16557 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何使用ant构建junit测试

阅读更多

 

build.bat:

echo on

set PROJET_HOME=..
set JAVA_HOME=%PROJET_HOME%/../jdk/windows
set ANT_HOME=%PROJET_HOME%/../ant

call %ANT_HOME%/bin/ant -f build.xml build_all -Dkkk=123456

pause
 

 

 

 

 

build.xml:

<project name="MyProject" default="dist" basedir="..">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="testsrc" location="test"/>
  <property name="tmpclass" location="tmp/class"/>
  <property name="tmptest" location="tmp/testclass"/>
  <property name="testrep" location="testrep"/>
  <property name="dist"  location="dist"/>

  <path id="lib">
      <pathelement path="${classpath}"/>
      <fileset dir="lib">
        <include name="**/*.jar"/>
      </fileset>
    </path>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <echo message= "${kkk}"/>
    <delete dir="${tmpclass}"/>
    <mkdir dir="${tmpclass}"/>
    <delete dir="${tmptest}"/>
    <mkdir dir="${tmptest}"/>
    <delete dir="${testrep}"/>
    <mkdir dir="${testrep}"/>
  </target>

  <target name="compile" depends="init"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${tmpclass}" includeAntRuntime="false">
    	<classpath>
    		      <path refid="lib"/>
    		</classpath>
    </javac>
  </target>

  <target name="testcompile" depends="compile"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${testsrc}" destdir="${tmptest}" includeAntRuntime="false">
    	<classpath>
    		      <path refid="lib"/>
    		      <pathelement path="${tmpclass}"/>
    		</classpath>
    	</javac>
  </target>

  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${tmpclass}"/>
  </target>

  <target name="test" depends="testcompile">
  	
				  	<junit printsummary="true">
				  <classpath>
    		      <path refid="lib"/>
				    <pathelement path="${tmptest}"/>
				    <pathelement path="${tmpclass}"/>
				  </classpath>
				
				  <formatter type="plain"/>
							
				  <batchtest fork="yes" todir="${testrep}">
				    <fileset dir="${testsrc}">
				      <include name="**/*Test.java"/>
				    </fileset>
				  </batchtest>
				</junit>

  	</target>

  <target name="build_all" depends="compile,testcompile,test,dist"/>

  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>
 

 

目录结构:

build 存放构建脚本

lib 存放依赖包

test 存放单元测试源码

src 

 

刚开始只在lib下存放junit.jar会抛找不到类的异常,可能跟版本也有关系:

org/hamcrest/SelfDescribing
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

再下载这个包:

hamcrest-core-1.2.jar

 

参考链接:

http://stackoverflow.com/questions/1171264/ant-junit-noclassdeffounderror

http://ant.apache.org/manual/index.html

 

分享到:
评论

相关推荐

    eclipse下利用ant、junit进行自动化测试例子源码

    5. **整合ANT和JUnit**:在Eclipse中,可以配置ANT构建脚本来调用JUnit测试。通过ANT,可以设定测试目标,例如编译源代码、运行测试、生成测试报告等。当ANT执行测试时,JUnit会运行所有的测试用例,并报告测试结果...

    Ant 使用Junit进行单元测试

    然后,我们有两个目标,一个是`compile`,用于编译源代码,另一个是`test`,用于执行JUnit测试。`junit`任务中,我们指定了测试报告的输出格式和失败时是否停止测试,以及要运行的测试类。 对于单元测试,我们需要...

    java单元测试篇:使用clover为java代码的junit测试做覆盖率分析.pdf

    使用 Ant 构建 JUnit 测试 使用 Ant,可以自动完成 JUnit 测试的构建和运行。需要在 build.xml 文件中添加 JUnit 任务,指定 JUnit 的 classpath 和测试类的位置。然后,使用 Ant 运行 JUnit 测试,生成测试报告。 ...

    ANT&JUNIT中文手册

    同时,由于Ant可以与JUnit集成,手册也将教你如何通过Ant来运行JUnit测试,从而实现构建过程中的自动化测试。 Ant与JUnit的结合使用是Java开发中的常见实践,Ant负责项目的构建,而JUnit则确保代码的质量。通过Ant...

    ant+junit教程

    通过编写清晰的Ant构建脚本和详尽的JUnit测试,你可以确保代码的质量和项目的稳定性,从而提高软件的可靠性。这个教程应该会涵盖从基本概念到高级特性的方方面面,帮助你熟练掌握这两个工具的使用。

    ant junit测试

    在"ant junit测试"的场景下,我们通常会用Ant来驱动JUnit进行测试。首先,你需要在Ant的构建文件(通常命名为build.xml)中定义一个任务,这个任务负责调用JUnit的测试类。这可以通过Ant的`junit`任务来实现。在`...

    Ant+JUnit测试报告实际例子

    在这个"Ant+JUnit测试报告实际例子"中,我们将深入探讨如何结合这两者来生成详细的测试报告。 首先,`build.properties` 文件通常包含了构建过程中的配置属性,如项目版本、库路径、源码编码等。这些设置可以被 `...

    一个使用ant及junit进行单元测试的简单例子

    在Ant中集成JUnit测试,通常会使用一个名为junit的Ant任务。这个任务会调用JUnit的测试运行器,执行指定的测试类或方法。在“buildjunit.xml”中,可能会定义这样一个任务,包含如下的配置: ```xml ...

    ant-junit4.jar.zip

    在build.xml中,我们可以看到一个名为"junit"的任务,这是Ant用来运行JUnit测试的专用任务。为了使用JUnit4,我们需要引入相应的jar包,这就是ant-junit4.jar。这个文件包含了Ant对JUnit4的支持,使得开发者可以在...

    ant-junit-1.6.5.jar.zip

    "ant-junit-1.6.5.jar"是Ant对JUnit支持的库文件,它包含了Ant执行JUnit测试所需的类和方法。这个JAR文件让Ant能够调用JUnit,并在构建过程中运行测试。在build.xml文件中,可以配置JUnit任务(&lt;junit&gt;),指定测试...

    Apache Ant 与Junit 对Java工程联合测试DEMO

    例如,`javac`任务用于编译Java源代码,`jar`任务用于打包成JAR文件,而`junit`任务则用于运行JUnit测试。 在与JUnit结合使用时,Ant可以在构建过程中自动执行测试,并生成测试报告。在配置`junit`任务时,你需要...

    ant-junit-1.7.0.jar.zip

    在“ant-junit-1.7.0.jar.zip”中,包含了Ant对JUnit支持的特定版本,即1.7.0,这使得开发者能够直接在Ant构建脚本中调用JUnit进行单元测试。 2. JUnit 1.7.0 JUnit 1.7.0是JUnit的一个早期版本,虽然现在已经有了...

    ant-junit-1.6.1.jar.zip

    “ant-junit-1.6.1.jar”是Ant对JUnit支持的一个库文件,它包含了Ant运行JUnit测试所需的类和资源。这个版本(1.6.1)相对比较老,但仍然适用于许多遗留项目。当我们在Ant的构建脚本中配置JUnit任务时,需要引入这个...

    Ant+Junit+Svn实现自动单元测试

    - 安装JUnit库,将其jar文件添加到Ant的lib目录,以便Ant能够运行JUnit测试。 - 安装Subversion(Svn),配置相关环境变量。 - 将svnant.jar,svnClientAdapter.jar,svnjavahl.jar添加到项目的lib目录,以支持...

    7_ant_junit和ant的整合(非常重要)

    2. **创建JUnit测试类**:在项目中编写JUnit测试类,每个类通常对应于一个或多个被测试的源代码类。测试类应包含各种测试方法,这些方法使用JUnit的断言(如`assertEquals`、`assertTrue`)来验证代码的行为。 3. *...

    Ant与Junit结合

    标题“Ant与JUnit结合”指的是在Java开发中如何利用Apache Ant构建工具与JUnit测试框架进行集成,以便自动化地运行单元测试。Apache Ant是一种基于XML的构建工具,它替代了传统的Makefile,为Java项目提供了构建、...

    Maven2.Ant.Junit合集

    《Maven2.Ant.Junit合集》是一个包含多种IT工具和框架的资源包,主要聚焦于Java开发中的构建管理和单元测试。这个合集提供了PDF和CHM两种格式的文档,便于不同用户根据个人喜好进行阅读。以下是这些工具及其重要知识...

    Eclipse下Ant+Junit构建文件

    在Ant构建脚本中,可以使用`&lt;junit&gt;`任务来运行JUnit测试。例如: ```xml &lt;junit printsummary="yes" haltonfailure="no"&gt; &lt;!-- 添加JUnit库 --&gt; ${java.class.path}"/&gt; **/*Test.java"/&gt; ...

    ANT执行junit

    接下来,我们需要配置Ant构建文件(build.xml),这是一个XML格式的文件,定义了构建过程的所有任务。 1. **配置build.xml** 在`build.xml`中,我们需要创建一个`junit`任务。例如: ```xml &lt;junit ...

Global site tag (gtag.js) - Google Analytics