Самый простой способ выполнить любой тип фильтрации - создать свой собственный JUnit Categories
.
Смотреть это Junit Category tutorial для получения более подробной информации, но в основном, создавать свои собственные категории с именем все, что вы хотите
public interface GuiTest{ }
public interface DbTest { }
И теперь вы можете аннотировать либо целые классы тестов или отдельные тесты с этой категорией:
@Category(GuiTest.class)
public void myJPanelTest{
@Test
public void testFoo(){
...
}
//look we can have other categories too
@Test
@Category(DbTest.class)
public void accidentalDbTest(){
}
}
Затем в вашем тестовом наборе вы можете указать, включать или исключать тесты, соответствующие данной категории
@RunWith(Categories.class)
@IncludeCategory(GuiTest.class)
@ExcludeCategory(DbTest.class) //not sure if we need both but can't hurt
@SuiteClasses({
...
})
public class GuiTestsOnlySuite{}
Использование категорий намного лучше, чем при необходимости проводить тесты фильтрации вручную на основе условных соглашений об именах, поскольку это трудно запоминать (и чтобы все члены вашей группы придерживались соглашений об именах), и поскольку категории - это классы, вы можете использовать свою IDE для поиска/рефакторинга/времени компиляции, проверяя имена вашей категории.
Единственный недостаток, который я видел, по крайней мере, в моей среде IDE, тесты занимают немного больше времени, потому что есть лишняя работа над отражением, чтобы убедиться, что тест соответствует критериям фильтра вашей категории до его запуска.
Возможно, вы можете [отсканировать аннотированную классность] [1]. [1]: http://stackoverflow.com/questions/4107498/how-to-build-a-list-of-classes-annotated-with-my-custom-annotation – aalku
Почему вы хотите тесты? Существуют различные решения для разных вариантов использования. Различные участники могут также динамически генерировать новые тесты, поэтому было бы сложно получить полный список тестов Junit 4, пока вы их не запустили. – dkatzel
@Dkatzel Я работаю над некоторым устаревшим кодом, который анализирует состав пакета JUnit и проверяет, что правильные тесты находятся в правильном наборе (например,убедитесь, что кто-то не поместил тест GUI в набор базы данных). Возможно, это излишне педантично, но, к сожалению, сейчас у меня нет никаких прав на это, поэтому я пытаюсь найти эквивалент JUnit 4 для существующего кода. – Thunderforge