JUnit - 与 ANT 插件

  • 简述

    我们将有一个示例来演示如何使用 ANT 运行 JUnit。按照下面给出的步骤操作。
  • 第 1 步:下载 Apache Ant

    根据您使用的操作系统下载Apache Ant
    os 压缩包名称
    windows apache-ant-1.8.4-bin.zip
    Linux apache-ant-1.8.4-bin.tar.gz
    苹果电脑 apache-ant-1.8.4-bin.tar.gz
  • 第二步:设置 Ant 环境

    设置 ANT_HOME环境变量指向基本目录位置,ANT 库存储在您的机器上。让我们假设 Ant 库存储在文件夹 apache-ant-1.8.4 中。
    序号 操作系统和描述
    1
    Windows
    将环境变量 ANT_HOME 设置为 C:\Program Files\Apache Software Foundation\apache-ant-1.8.4
    2
    Linux
    导出 ANT_HOME = /usr/local/apache-ant-1.8.4
    3
    Mac
    导出 ANT_HOME = /Library/apache-ant-1.8.4
    将 Ant 编译器位置附加到系统路径,如下所示 -
    os 输出
    windows 附加字符串 %ANT_HOME\bin 在系统变量的末尾, Path.
    Linux 导出路径 = $PATH:$ANT_HOME/bin/
    苹果电脑 不需要
  • 第 3 步:下载 JUnit 压缩包

    下载适合您的操作系统的 JUnit 压缩包。
    os 压缩包名称
    windows junit4.10.jar
    Linux junit4.10.jar
    苹果电脑 junit4.10.jar
  • 第 4 步:创建项目结构

    • 创建文件夹 TestJunitWithAnt 在 C:\>JUNIT_WORKSPACE 中。
    • 创建文件夹 src 在 C:\>JUNIT_WORKSPACE>TestJunitWithAnt 中。
    • 创建文件夹 test 在 C:\>JUNIT_WORKSPACE>TestJunitWithAnt 中。
    • 创建文件夹 lib 在 C:\>JUNIT_WORKSPACE>TestJunitWithAnt 中。
    • 创建 MessageUtil C:\>JUNIT_WORKSPACE>TestJunitWithAnt> srcfolder 中的类。
    
    /*
    * This class prints the given message on console.
    */
    public class MessageUtil {
       private String message;
       //Constructor
       //@param message to be printed
       public MessageUtil(String message){
          this.message = message; 
       }
       // prints the message
       public String printMessage(){
          System.out.println(message);
          return message;
       }   
       // add "Hi!" to the message
       public String salutationMessage(){
          message = "Hi!" + message;
          System.out.println(message);
          return message;
       }   
    }     
    
    创建 TestMessageUtil 文件夹 C:\>JUNIT_WORKSPACE>TestJunitWithAnt>src 中的类。
    
    import org.junit.Test;
    import org.junit.Ignore;
    import static org.junit.Assert.assertEquals;
    public class TestMessageUtil {
       String message = "Robert"; 
       MessageUtil messageUtil = new MessageUtil(message);
       
       @Test
       public void testPrintMessage() { 
          System.out.println("Inside testPrintMessage()");     
          assertEquals(message,messageUtil.printMessage());
       }
       @Test
       public void testSalutationMessage() {
          System.out.println("Inside testSalutationMessage()");
          message = "Hi!" + "Robert";
          assertEquals(message,messageUtil.salutationMessage());
       }
    }
    
    将 junit-4.10.jar 复制到文件夹 C:\>JUNIT_WORKSPACE>TestJunitWithAnt>lib。
  • 创建 ANT Build.xml

    我们将使用 <junit> Ant 中的任务来执行我们的 JUnit 测试用例。
    
    <project name = "JunitTest" default = "test" basedir = ".">
       <property name = "testdir" location = "test" />
       <property name = "srcdir" location = "src" />
       <property name = "full-compile" value = "true" />
       
       <path id = "classpath.base"/>
       
       <path id = "classpath.test">
          <pathelement location = "lib/junit-4.10.jar" />
          <pathelement location = "${testdir}" />
          <pathelement location = "${srcdir}" />
          <path refid = "classpath.base" />
       </path>
       
       <target name = "clean" >
          <delete verbose = "${full-compile}">
             <fileset dir = "${testdir}" includes = "**/*.class" />
          </delete>
       </target>
       
       <target name = "compile" depends = "clean">
          <javac srcdir = "${srcdir}" destdir = "${testdir}" 
             verbose = "${full-compile}">
             <classpath refid = "classpath.test"/>
          </javac>
       </target>
       
       <target name = "test" depends = "compile">
          <junit>
             <classpath refid = "classpath.test" />
             <formatter type = "brief" usefile = "false" />
             <test name = "TestMessageUtil" />
          </junit>
       </target>
       
    </project>
    
    运行以下 Ant 命令。
    
    C:\JUNIT_WORKSPACE\TestJunitWithAnt>ant
    
    验证输出。
    
    Buildfile: C:\JUNIT_WORKSPACE\TestJunitWithAnt\build.xml
    clean:  
    compile:  
       [javac] Compiling 2 source files to C:\JUNIT_WORKSPACE\TestJunitWithAnt\test
       [javac] [parsing started C:\JUNIT_WORKSPACE\TestJunitWithAnt\src\
          MessageUtil.java]
       [javac] [parsing completed 18ms]
       [javac] [parsing started C:\JUNIT_WORKSPACE\TestJunitWithAnt\src\
          TestMessageUtil.java]
       [javac] [parsing completed 2ms]
       [javac] [search path for source files: C:\JUNIT_WORKSPACE\
          TestJunitWithAnt\src]    
       [javac] [loading java\lang\Object.class(java\lang:Object.class)]
       [javac] [loading java\lang\String.class(java\lang:String.class)]
       [javac] [loading org\junit\Test.class(org\junit:Test.class)]
       [javac] [loading org\junit\Ignore.class(org\junit:Ignore.class)]
       [javac] [loading org\junit\Assert.class(org\junit:Assert.class)]
       [javac] [loading java\lang\annotation\Retention.class
          (java\lang\annotation:Retention.class)]
       [javac] [loading java\lang\annotation\RetentionPolicy.class
          (java\lang\annotation:RetentionPolicy.class)]
       [javac] [loading java\lang\annotation\Target.class
          (java\lang\annotation:Target.class)]
       [javac] [loading java\lang\annotation\ElementType.class
          (java\lang\annotation:ElementType.class)]
       [javac] [loading java\lang\annotation\Annotation.class
          (java\lang\annotation:Annotation.class)]
       [javac] [checking MessageUtil]
       [javac] [loading java\lang\System.class(java\lang:System.class)]
       [javac] [loading java\io\PrintStream.class(java\io:PrintStream.class)]
       [javac] [loading java\io\FilterOutputStream.class
          (java\io:FilterOutputStream.class)]
       [javac] [loading java\io\OutputStream.class(java\io:OutputStream.class)]
       [javac] [loading java\lang\StringBuilder.class
          (java\lang:StringBuilder.class)]
       [javac] [loading java\lang\AbstractStringBuilder.class
          (java\lang:AbstractStringBuilder.class)]
       [javac] [loading java\lang\CharSequence.class(java\lang:CharSequence.class)]
       [javac] [loading java\io\Serializable.class(java\io:Serializable.class)]
       [javac] [loading java\lang\Comparable.class(java\lang:Comparable.class)]
       [javac] [loading java\lang\StringBuffer.class(java\lang:StringBuffer.class)]
       [javac] [wrote C:\JUNIT_WORKSPACE\TestJunitWithAnt\test\MessageUtil.class]
       [javac] [checking TestMessageUtil]
       [javac] [wrote C:\JUNIT_WORKSPACE\TestJunitWithAnt\test\TestMessageUtil.class]
       [javac] [total 281ms]
    test:
        [junit] Testsuite: TestMessageUtil
        [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.008 sec
        [junit]
        [junit] ------------- Standard Output ---------------
        [junit] Inside testPrintMessage()
        [junit] Robert
        [junit] Inside testSalutationMessage()
        [junit] Hi!Robert
        [junit] ------------- ---------------- ---------------
    BUILD SUCCESSFUL
    Total time: 0 seconds