Java: Chạy JUnit bằng Ant
Chúng tôi sẽ có một ví dụ để minh họa cách chạy JUnit bằng ANT. Bạn hãy 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ữ |
---|---|
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 |
Bước 2: Thiết lập môi trường Ant
Đặt biến môi trường ANT_HOME 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 Export ANT_HOME = /usr/local/apache-ant-1.8.4 |
3 |
Mac Export 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 |
---|---|
Windows | Nối chuỗi %ANT_HOME\bin vào cuối biến hệ thống Path. |
Linux | Export 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ữ |
---|---|
Windows | 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 thư mục test trong C:\>JUNIT_WORKSPACE>TestJunitWithAnt.
- Tạo một thư mục lib trong C:\>JUNIT_WORKSPACE>TestJunitWithAnt.
- Tạo lớp MessageUtil 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 lớp 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 tác vụ <junit> trong Ant để thực thi các test case 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