Saya memiliki tes JUnit berikut di Eclipse:
package test;
import org.junit.Test;
public class SimpleJUnitTest
{
@Test
public void doTest() { System.out.println("Test did run"); }
}
Dan build.xml berikut di folder yang sama:
<?xml version="1.0" encoding="UTF-8"?>
<project name="LoggerTest" default="JUnitTest" basedir=".">
<target name="JUnitTest">
<junit>
<classpath location="../../lib/junit.jar" />
<test name="test.SimpleJUnitTest" />
</junit>
<echo>boo</echo>
</target>
</project>
Jika saya menjalankan kelas pengujian di bawah "Jalankan Sebagai..." dan memilih JUnit, kelas tersebut berjalan tanpa kesalahan. Jika saya menjalankan build.xml di bawah "Run As..." dan memilih Ant Build, saya mendapatkan output berikut:
Buildfile: C:\Users\995868\workspace\JUnit1\tst\test\build.xml
JUnitTest:
[junit] Test test.SimpleJUnitTest FAILED
[echo] boo BUILD SUCCESSFUL Total time: 390 milliseconds
Jika saya menghapus atribut classpath di bawah JUnit, saya mendapatkan pesan kesalahan berbeda tentang perlunya toples junit di classpath, jadi menurut saya JUnit dipanggil. Saya hanya tidak mengerti apa kesalahannya di sini. Saya sudah mencoba memasukkan kode blok statis di kelas untuk melakukan System.out.println()
ketika kelas dimuat, dan itu tidak muncul, jadi sepertinya ada kesalahan yang saya lakukan dalam konfigurasi.
Bisakah seseorang tolong beri tahu saya apa yang salah di sini?
Sunting:
directory structure:
JUnit1
--bin
--test
--SimpleJUnitTest
--lib
--junit.jar
--scripts
--build.xml
--src
--tst
--test
--SimpleJUnitTest.java
Saya juga menyalin build.xml ke tst dan menjalankannya dari baris perintah dari direktori itu, hasil yang sama.
Saya telah menyalin junit.jar ke %ant_home%\lib tanpa efek apa pun, meskipun ketika saya mengeluarkan baris pathelement dari classpath saya mendapat pesan "For must include junit.jar if not in Ant's own classpath". Saya tidak yakin di mana "jalur kelas Ant sendiri" ditentukan. Blok classpath dengan pesan kesalahan baru adalah ini:
<classpath>
<pathelement location="c:/users/995868/apache-ant-1.9.4/lib" />
<pathelement location="../bin" />
</classpath>
Saya tidak menggunakan fitur hamcrest di mana pun, jadi saya belum mencarinya dan memasangnya. Saya mencoba membuat contoh sederhana, dan dokumentasi untuk junit di bawah ant (setidaknya) tidak menyebutkan bahwa hamcrest diperlukan.