Tôi có các kiểm tra JUnit về dự án của mình chạy đúng với Eclipse.Kiểm tra Junit được tích hợp với Ant Failed với ClassNotFoundException
Vì vậy, bây giờ tôi cố gắng tích hợp các thử nghiệm này với tác vụ kiến. Để làm cho tôi tạo ra kịch bản kiến sau:
<path id="classpath-test">
<pathelement path="." />
<pathelement path="${classes.home}" />
<fileset dir="${lib.home}" includes="*.jar" />
<fileset dir="${libtest.home}" includes="*.jar" />
</path>
<target name="compile" ... > // compiles src code of the project
<target name="compile-tests" depends="compile">
<javac srcdir="${test.home}"
destdir="${testclasses.home}"
target="1.5"
source="1.5"
debug="true"
>
<classpath refid="classpath-test" />
</javac>
<copy todir="${testclasses.home}">
<fileset dir="${test.home}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="unit-test" depends="compile-tests">
<junit printsummary="false" fork="off" haltonfailure="true">
<classpath refid="classpath-test" />
<formatter type="brief" usefile="false" />
<test name="com.test.MyTest" />
<!--<batchtest todir="${reports.dir}" >
<fileset dir="${testclasses.home}" >
<exclude name="**/AllTests*"/>
<include name="**/*Test.class" />
</fileset>
</batchtest>-->
</junit>
</target>
Thư mục $ {libtest.hom} chứa junit-4.8.1.jar và hamcrest-core-1.1.jar.
Khi tôi khởi động lệnh sau: kiến đơn vị kiểm tra, thực hiện các MyTest không thành công với kết quả như sau:
unit-test:
[junit] Testsuite: com.test.MyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test: Caused an ERROR
[junit] com.test.MyTest
[junit] java.lang.ClassNotFoundException: com.test.MyTest
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Class.java:247)
[junit]
[junit]
Nó rất lạ vì com.test.MyTest là cũng trong classpath chỉ cho nhiệm vụ của tôi junit trong kịch bản kiến. Ai đó sẽ có và ý tưởng để giải quyết vấn đề này?
Cảm ơn sự giúp đỡ của bạn.
Sylvain.
Cám ơn câu trả lời của bạn. Nó giải quyết vấn đề của tôi. Tôi đã tha thứ để đặt các lớp kiểm tra trong classpath của nhiệm vụ kiến junit của tôi. – sylsau
Giải pháp này chạy đến một lỗi khác trong trường hợp của tôi: java.util.zip.ZipException; xem tại đây: http://stackoverflow.com/questions/8655193/not-able-to-run-test-through-ant tại câu trả lời Mayoares. Thay đổi thẻ ở trên thành đã giúp tôi sửa lỗi này. –
srnka