2012-03-19 29 views
5

Tôi đang cố chạy thử nghiệm Junit từ tệp build.xml kiến ​​của tôi. Tôi đọc here mà bạn có thể sử dụng tệp junit.jar thay vì sử dụng .jar nằm trong thư mục ant.home/lib. Đây là những gì tôi muốn làm kể từ khi thiết lập autobuild Jenkins của chúng tôi không có tệp junit.jar trong thư mục lib của mình.Nhiệm vụ kiến ​​của Junit - JUnitTask không được tìm thấy

Ngay cả với dự án đơn giản nhất, tôi luôn nhận được lỗi này là không tìm thấy JUnitTask. Nếu bạn nhìn vào tệp build.xml của tôi, nó được bao gồm rõ ràng và được sử dụng trong tác vụ junit.

build.xml:

<project default="all"> 
    <property name="TALK" value="false" /> 

    <path id="classpath.base"> 
    </path> 
    <path id="classpath.test"> 
     <fileset dir="." includes="**/*.jar" /> 
    </path> 

    <target name="compile-test"> 
     <javac srcdir="src" verbose="${TALK}"> 
      <classpath refid="classpath.test" /> 
     </javac> 
    </target> 

    <target name="test" depends="compile-test"> 
     <junit> 
      <classpath refid="classpath.test" /> 
      <formatter type="brief" usefile="false" /> 
      <test name="TestClass" /> 
     </junit> 
    </target> 

    <target name="all" depends="test" /> 
</project> 

Các ví dụ nhỏ tôi đã thực hiện để kiểm tra mọi thứ ra trông như thế này:

image

EDIT: cập nhật dựa trên câu trả lời

Trả lời

8

Các junit- Tài liệu hơi thưa thớt.
Nếu bạn có kiến-junit.jar ngoài ANT_HOME/lib bạn cần xác định nhiệm vụ chính mình (các <taskdef/> là từ FAQ, đó cũng là một chút sai lầm, bởi vì nó nói để sử dụng class="...", mà không tồn tại như một thuộc tính để <taskdef />):

<path id="classpath.test"> 
    <fileset dir="." includes="*junit.jar" /> 
</path> 

<taskdef name="junit" 
    classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"> 
    <classpath refid="classpath.test"/> 
</taskdef> 

này có thể được sử dụng để kiểm tra đường dẫn:

<pathconvert property="testoutput" refid="classpath.test"/> 
<echo>Path = ${testoutput}</echo> 

Tài liệu:
junit task.


thông tin bổ sung có thể được tìm thấy trong this chat transcript

+0

Đã không làm việc ra. – David

+0

@David bạn có ant-junit.jar int ant_home/lib không? Bạn cũng cần thư viện này ở đâu đó. Xem các tài liệu: http://ant.apache.org/manual/Tasks/junit.html – oers

+0

Không, tôi không phải nhưng nếu bạn đọc dòng nó nói: 2. Không được đặt trong ANT_HOME/lib, và thay vào đó hãy bao gồm vị trí trong biến môi trường CLASSPATH của bạn. – David

0

Giải pháp của tôi là tạo ra một biến CLASSPATH trong Jenkins Hệ thống Configure, và thêm đường dẫn ant-junit.jar

Các vấn đề liên quan