
- JUnit 教程
- JUnit - 首頁
- JUnit - 概述
- JUnit - 環境設定
- JUnit - 測試框架
- JUnit - 基本用法
- JUnit - API
- JUnit - 編寫測試
- JUnit - 使用斷言
- JUnit - 執行流程
- JUnit - 執行測試
- JUnit - 套件測試
- JUnit - 忽略測試
- JUnit - 時間測試
- JUnit - 異常測試
- JUnit - 引數化測試
- JUnit 與 Ant 整合
- JUnit 與 Eclipse 整合
- JUnit - 擴充套件
- JUnit 有用資源
- JUnit - 問答
- JUnit - 快速指南
- JUnit - 有用資源
- JUnit - 討論
JUnit 與 Ant 整合
我們將透過一個示例演示如何使用 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 資料夾中。
序號 | 作業系統和描述 |
---|---|
1 | Windows 將環境變數 ANT_HOME 設定為 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 |
將 Ant 編譯器位置新增到系統路徑,如下所示:
作業系統 | 輸出 |
---|---|
Windows | 在系統變數 **Path** 的末尾追加字串 **%ANT_HOME%\bin**。 |
Linux | export PATH=$PATH:$ANT_HOME/bin/ |
Mac | 無需設定 |
步驟 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>src 資料夾中建立 **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 中的 **
<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