Найти тесты JUnit 3, которые не включены ни в один комплект? - PullRequest
0 голосов
/ 22 июня 2010

Если кто-то пишет новый модульный тест, но забывает добавить его в комплект, непрерывная сборка будет успешно проходить, даже если кто-то позже нарушит тест. Есть ли способ обнаружить тесты JUnit, которые не включены в комплект?

EDIT
Я знаю, что могу перейти на JUnit 4, но возникает вопрос: как найти тесты, в которых отсутствует аннотация @Test?

Ответы [ 4 ]

1 голос
/ 24 июня 2010

Я предлагаю не создавать тестовые наборы вручную. Вместо этого убедитесь, что ваша сборка автоматически запускает все тесты, которые находятся в вашем каталоге "tests". Ant поддерживает способ сделать это с помощью элемента .

Вы также можете создать набор, который находит тесты для запуска, ища все неабстрактные классы, расширяющие TestCase. Вы можете свернуть свой собственный рефлексивный набор с Reflections или искать бесплатные реализации (см. Как программно запустить все тесты JUnit в моем приложении Java? )

1 голос
/ 22 июня 2010

Я бы сделал следующее:

  1. Используйте некоторую комбинацию find и grep, чтобы извлечь список предполагаемых имен тестовых классов; например grep для файлов, которые содержат extend TestCase.

  2. Используйте некоторую комбинацию find и grep в отчетах о тестах, чтобы извлечь список классов тестов, которые фактически выполнялись.

  3. Сортируйте два списка и сравните их, используя diff.

Существует риск ложных срабатываний и ложных отрицаний; например тестовые классы, которые непосредственно не расширяются TestCase, могут ускользнуть из сети. Но этот подход даст вам быстрый ответ «первый срез».

1 голос
/ 23 июня 2010

Используя TestSuite.tests(), вы можете создать список тестов (рекурсивно), включенных в наборы тестов ( list1 ), а с помощью отражения Java вы можете создать список всех тестов (из классов, которые расширяют TestCase) ( * песни2 1006 *).

Затем вычтите list1 из list2 , чтобы получить список тестов, не включенных ни в один комплект.

При запуске этой Java-программы classpath должен содержать все тестовые классы.

1 голос
/ 22 июня 2010

Перейти к junit4?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...