JUnit - Cắm với ANT

Chúng tôi sẽ có một ví dụ để minh họa cách chạy JUnit bằng ANT. Làm theo các bước dưới đây.

Bước 1: Tải xuống Apache Ant

Tải xuống Apache Ant dựa trên hệ điều hành bạn đang làm việc.

Hệ điều hành Tên lưu trữ
các cửa sổ 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

Bước 2: Đặt Môi trường Kiến

Đặt ANT_HOMEbiến môi trường để trỏ đến vị trí thư mục cơ sở, nơi các thư viện ANT được lưu trữ trên máy của bạn. Giả sử các thư viện Ant được lưu trữ trong thư mục apache-ant-1.8.4.

Sr.No. Hệ điều hành & Mô tả
1

Windows

Đặt biến môi trường ANT_HOME thành C: \ Program Files \ Apache Software Foundation \ apache-ant-1.8.4

2

Linux

xuất ANT_HOME = /usr/local/apache-ant-1.8.4

3

Mac

xuất ANT_HOME = /Library/apache-ant-1.8.4

Nối vị trí trình biên dịch Ant vào Đường dẫn Hệ thống như sau:

Hệ điều hành Đầu ra
các cửa sổ Nối chuỗi %ANT_HOME\bin ở cuối biến hệ thống, Path.
Linux xuất PATH = $ PATH: $ ANT_HOME / bin /
Mac không yêu cầu

Bước 3: Tải xuống JUnit Archive

Tải xuống Kho lưu trữ JUnit phù hợp với hệ điều hành của bạn.

Hệ điều hành Tên lưu trữ
các cửa sổ junit4.10.jar
Linux junit4.10.jar
Mac junit4.10.jar

Bước 4: Tạo cấu trúc dự án

  • Tạo một thư mục TestJunitWithAnt trong C: \> JUNIT_WORKSPACE.

  • Tạo một thư mục src trong C: \> JUNIT_WORKSPACE> TestJunitWithAnt.

  • Tạo một thư mục test trong C: \> JUNIT_WORKSPACE> TestJunitWithAnt.

  • Tạo một thư mục lib trong C: \> JUNIT_WORKSPACE> TestJunitWithAnt.

  • Tạo nên MessageUtil lớp trong 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;
   }   
}

Tạo nên TestMessageUtil trong thư mục 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());
   }
}

Sao chép junit-4.10.jar vào thư mục C: \> JUNIT_WORKSPACE> TestJunitWithAnt> lib.

Tạo ANT Build.xml

Chúng tôi sẽ sử dụng <junit> nhiệm vụ trong Ant để thực thi các trường hợp thử nghiệm JUnit của chúng tôi.

<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>

Chạy lệnh Ant sau đây.

C:\JUNIT_WORKSPACE\TestJunitWithAnt>ant

Xác minh kết quả đầu ra.

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