JUnit - 使用 Ant 插件

创建于 2024-12-02 / 26
字体: [默认] [大] [更大]

我们将有一个示例来演示如何使用 ANT 运行 JUnit。 请按照下面给出的步骤操作。

第 1 步:下载 Apache Ant

根据您正在使用的操作系统下载 Apache Ant

操作系统 存档名称
Windows apache-ant-1.8.4-bin.zip
Linux apache-ant-1.8.4-bin.tar.gz
Mac apache-ant-1.8.4-bin.tar.gz

第2步:设置Ant环境

设置 ANT_HOME 环境变量以指向基本目录位置,其中 ANT 库存储在您的计算机上。 让我们假设 Ant 库存储在文件夹 apache-ant-1.8.4 中。

Sr.No. 操作系统与描述
1

Windows

将环境变量 ANT_HOME 设置为 C:Program FilesApache Software Foundationapache-ant-1.8.4

2

Linux

export ANT_HOME = /usr/local/apache-ant-1.8.4

3

Mac

export ANT_HOME = /Library/apache-ant-1.8.4

将 Ant 编译器位置附加到系统路径,如下所示 −

操作系统 输出
Windows 将字符串 %ANT_HOME\bin 附加到系统变量 Path 的末尾。
Linux export PATH = $PATH:$ANT_HOME/bin/
Mac not required

第 3 步:下载 JUnit 存档

下载适合您的操作系统的 JUnit 存档。

操作系统 存档名称
Windows junit4.10.jar
Linux junit4.10.jar
Mac junit4.10.jar

第 4 步:创建项目结构

  • 在 C:>JUNIT_WORKSPACE 中创建文件夹 TestJunitWithAnt

  • 在 C:>JUNIT_WORKSPACE>TestJunitWithAnt 中创建文件夹 src

  • 在 C:>JUNIT_WORKSPACE>TestJunitWithAnt 中创建文件夹 test

  • 在 C:>JUNIT_WORKSPACE>TestJunitWithAnt 中创建文件夹 lib

  • 在 C:>JUNIT_WORKSPACE>TestJunitWithAnt 中创建文件夹 MessageUtil

/*
* 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;
   }   
}  	

在文件夹 C:>JUNIT_WORKSPACE>TestJunitWithAnt>src 中创建 TestMessageUtil 类。

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

我们将在 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_WORKSPACETestJunitWithAnt>ant

验证输出。

Buildfile: C:JUNIT_WORKSPACETestJunitWithAnt\build.xml

clean:  

compile:  
   [javac] Compiling 2 source files to C:JUNIT_WORKSPACETestJunitWithAnt	est
   [javac] [parsing started C:JUNIT_WORKSPACETestJunitWithAntsrc
      MessageUtil.java]
   [javac] [parsing completed 18ms]
   [javac] [parsing started C:JUNIT_WORKSPACETestJunitWithAntsrc
      TestMessageUtil.java]
   [javac] [parsing completed 2ms]
   [javac] [search path for source files: C:JUNIT_WORKSPACE
      TestJunitWithAntsrc]    
   [javac] [loading javalangObject.class(javalang:Object.class)]
   [javac] [loading javalangString.class(javalang:String.class)]
   [javac] [loading orgjunitTest.class(orgjunit:Test.class)]
   [javac] [loading orgjunitIgnore.class(orgjunit:Ignore.class)]
   [javac] [loading orgjunitAssert.class(orgjunit:Assert.class)]
   [javac] [loading javalangannotationRetention.class
      (javalangannotation:Retention.class)]
   [javac] [loading javalangannotationRetentionPolicy.class
      (javalangannotation:RetentionPolicy.class)]
   [javac] [loading javalangannotationTarget.class
      (javalangannotation:Target.class)]
   [javac] [loading javalangannotationElementType.class
      (javalangannotation:ElementType.class)]
   [javac] [loading javalangannotationAnnotation.class
      (javalangannotation:Annotation.class)]
   [javac] [checking MessageUtil]
   [javac] [loading javalangSystem.class(javalang:System.class)]
   [javac] [loading javaioPrintStream.class(javaio:PrintStream.class)]
   [javac] [loading javaioFilterOutputStream.class
      (javaio:FilterOutputStream.class)]
   [javac] [loading javaioOutputStream.class(javaio:OutputStream.class)]
   [javac] [loading javalangStringBuilder.class
      (javalang:StringBuilder.class)]
   [javac] [loading javalangAbstractStringBuilder.class
      (javalang:AbstractStringBuilder.class)]
   [javac] [loading javalangCharSequence.class(javalang:CharSequence.class)]
   [javac] [loading javaioSerializable.class(javaio:Serializable.class)]
   [javac] [loading javalangComparable.class(javalang:Comparable.class)]
   [javac] [loading javalangStringBuffer.class(javalang:StringBuffer.class)]
   [javac] [wrote C:JUNIT_WORKSPACETestJunitWithAnt	estMessageUtil.class]
   [javac] [checking TestMessageUtil]
   [javac] [wrote C:JUNIT_WORKSPACETestJunitWithAnt	estTestMessageUtil.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


0 人点赞过