JUnit - เสียบกับ ANT
เราจะมีตัวอย่างเพื่อสาธิตวิธีการเรียกใช้ JUnit โดยใช้ ANT ทำตามขั้นตอนที่ระบุด้านล่าง
ขั้นตอนที่ 1: ดาวน์โหลด Apache Ant
ดาวน์โหลดApache Antตามระบบปฏิบัติการที่คุณใช้งานอยู่
ระบบปฏิบัติการ | ชื่อที่เก็บถาวร |
---|---|
Windows | apache-ant-1.8.4-bin.zip |
ลินุกซ์ | apache-ant-1.8.4-bin.tar.gz |
Mac | apache-ant-1.8.4-bin.tar.gz |
ขั้นตอนที่ 2: ตั้งค่า Ant Environment
ตั้งค่า 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 เข้ากับ System Path ดังนี้ -
ระบบปฏิบัติการ | เอาต์พุต |
---|---|
Windows | ต่อท้ายสตริง %ANT_HOME\bin ในตอนท้ายของตัวแปรระบบ Path. |
ลินุกซ์ | ส่งออก PATH = $ PATH: $ ANT_HOME / bin / |
Mac | ไม่จำเป็นต้องใช้ |
ขั้นตอนที่ 3: ดาวน์โหลด JUnit Archive
ดาวน์โหลด JUnit Archive ที่เหมาะกับระบบปฏิบัติการของคุณ
ระบบปฏิบัติการ | ชื่อที่เก็บถาวร |
---|---|
Windows | junit4.10.jar |
ลินุกซ์ | junit4.10.jar |
Mac | 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