Я использую категории JUnit и ClassPathSuite в настройках, аналогичных описанным в этом ответе. Напомним:
public interface FastTests {
}
@RunWith(Categories.class)
@Categories.IncludeCategory(FastTests.class)
@Suite.SuiteClasses(AllTests.class)
public class FastTestSuite {
}
@RunWith(ClasspathSuite.class)
public class AllTests {
}
... где AllTests использует библиотеку ClasspathSuite.
Испытательный класс, который входит в категорию FastTests, будет выглядеть следующим образом:
@Category(FastTests.class)
public class StringUtilsTest {
// ...
}
Когда я запускаю "FastTestSuite" в моей среде IDE, все тесты с аннотацией FastTests выполняются, приятные и гладкие:
Теперь Я хочу сделать то же самое с Ant. (К моему удивлению, я не мог легко найти инструкции для этого на SO.) Другими словами, мне нужна цель Ant, которая запускает все тесты с помощью аннотации FastTests.
Я пробовал некоторые упрощенные подходы, используя <test>
или <batchtest>
...
<junit showoutput="true" printsummary="yes">
<test name="fi.foobar.FastTestSuite"/>
<formatter type="xml"/>
<classpath refid="test.classpath"/>
</junit>
... но пока не повезло.
Изменить. Помимо IDE, он отлично работает с JUnitCore в командной строке:
$ java -classpath "classes:WebContent/WEB-INF/lib/*" org.junit.runner.JUnitCore fi.foobar.FastTestSuite
.............
Time: 0.189
OK (13 tests)