Я использую JUnit Categories и 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 выполняются, хорошо иsmooth:
Теперь, Я хочу сделать то же самое с 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)