โปรเจคนี้ผมตัดสินใจใช้ Framework, Library Release ใหม่ทั้งหมด
รวมทั้งขยับขึ้นไปใช้ jdk1.5
ศึกแรกที่ต้องเจอ ก็คือ Maven2 กับ TestNG
ตัว TestNG เคยเขียนไปแล้วที่ post นี้ Link
(ผ่านมาปีหนึ่งแล้ว พึ่งได้ใช้จริงๆจังๆ)
ใน maven2 เราสามารถใช้ TestNG ได้เลย (Out of a box)
โดยมีสิ่งที่ต้องทำดังนี้
- เพิ่ม dependency เข้าไปดังนี้
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>4.7</version>
<scope>test</scope>
<classifier>jdk15</classifier>
</dependency> - ระบุว่าต้องการใช้ Jdk1.5 ในการ compile
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
จากนั้นเมื่อต้องการ run test ก็แค่
mvn test
ดูง่ายๆเลย
ทลลอง run ดู ปรากฎว่า run test ไม่ผ่าน
เปลี่ยนไป run ใน eclipse ด้วย plugin ของ TestNG
อ้าว ผ่านแฮะ
error ที่ปรากฎ
-------------------------------------------------------
T E S T S
-------------------------------------------------------
[surefire] Running pok.MyTest
[surefire] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.072 sec <<<<<<<< FAILURE !!
Results :
[surefire] Tests run: 1, Failures: 1, Errors: 0
ที่หนักว่านั้นก็คือ เมื่อทดลอง copy ไป run บน Linux box บ้าง
(เดิม run บน Mac)
ผลที่ได้
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running pok.MyTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 sec
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
ไม่ error แต่ ไม่ run
อย่างนี้ก็แสดงว่า Surefire
(plugin ของ Maven ที่รับผิดชอบในเรื่่อง Testing)
ต้องการให้เราระบุ สิ่งที่ต้องการจะ run ด้วย
ซึ่งทำได้โดยการเพิ่ม Suite file เข้าไปอีก 1 file
เพื่อระบุสิ่งที่ต้องการ run
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Domain" >
<packages>
<package name="pok.*" />
</packages>
</test>
</suite>
และระบุเพิ่มใน pom ดังนี้
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
ส่วนใน Mac ผมลองลบ repository ของ maven ทิ้ง
สั่งทำงานใหม่ (มันก็จะ load repository มาให้ใหม่)
อาหารหายเป็นปลิดท้ิง
แสดงว่ามีปัญหาเรื่อง version ของ jar file ที่ download มา
เฮ้อ เกือบถอดใจหันกลับไปใช้ JUnit กับ maven1.x เหมือนเดิมแล้วสิ
No comments:
Post a Comment