У меня есть следующий тест JUnit в eclipse:
package test;
import org.junit.Test;
public class SimpleJUnitTest
{
@Test
public void doTest() { System.out.println("Test did run"); }
}
И следующий build.xml в той же папке:
<?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>
Если я запускаю тестовый класс в разделе «Запуск от имени ...» и выбираю JUnit, он запускается без ошибок. Если я запускаю build.xml в разделе «Запуск от имени ...» и выбираю Ant Build, я получаю следующий результат:
Buildfile: C:\Users\995868\workspace\JUnit1\tst\test\build.xml
JUnitTest:
[junit] Test test.SimpleJUnitTest FAILED
[echo] boo BUILD SUCCESSFUL Total time: 390 milliseconds
Если я удалю атрибут classpath в JUnit, я получаю другое сообщение об ошибке о необходимости jar-файла в пути к классам, поэтому я думаю, что JUnit запускается. Я просто не понимаю, в чем его ошибка. Я пробовал поместить код статического блока в класс, чтобы сделать System.out.println()
, когда класс загружен, а он не появляется, так что, похоже, я что-то делаю неправильно в конфигурации.
Может кто-нибудь подскажет, что здесь не так?
РЕДАКТИРОВАТЬ:
directory structure:
JUnit1
--bin
--test
--SimpleJUnitTest
--lib
--junit.jar
--scripts
--build.xml
--src
--tst
--test
--SimpleJUnitTest.java
Я также скопировал build.xml в tst и запустил его из командной строки из этого каталога, результат тот же.
Я скопировал junit.jar в% ant_home% \ lib без какого-либо эффекта, хотя, когда я вынул строку pathelement из пути к классам, я получил сообщение «for должен включать junit.jar, если не находится в собственном пути к классам Ant». Я не уверен, где указан «собственный путь к классам Ant». Блок пути к классам с новым сообщением об ошибке следующий:
<classpath>
<pathelement location="c:/users/995868/apache-ant-1.9.4/lib" />
<pathelement location="../bin" />
</classpath>
Я нигде не использую функции hamcrest, поэтому я не нашел и не вставил их. Я пытался сделать простой пример, и в документации для junit под ant (по крайней мере) не упоминается, что hamcrest необходим.