Исключить отдельные методы JUnit Test без изменения класса Test?

В настоящее время я повторно использую тесты JUnit 4 из другого проекта для моего кода. Я получаю их непосредственно из репозитория другого проекта как часть моей автоматической сборки Ant. Это здорово, так как это гарантирует, что я сохраню свой код зеленым от самой последней версии тестов.

Тем не менее, есть подмножество тестов, которые я никогда не собираюсь проходить в своем коде. Но если я начну добавлять аннотации @Ignore к этим тестам, мне придется сохранить собственную отдельную копию реализации теста, которую ядействительно не хочу делать

Есть ли способ исключить отдельные тесты без изменения источника тестов? Вот что я посмотрел до сих пор:

Насколько я вижу, задача Ant JUnit позволяет исключать только целые классы Test, а не отдельные методы тестирования, поэтому для меня это бесполезно, мне нужна детализация методов.

Я подумал о том, чтобы собрать TestSuite, который использует отражение для динамического поиска и добавления всех исходных тестов, а затем добавить код, чтобы явно удалить тесты, которые я не хочу запускать. Но я отказался от этой идеи, когда заметил, чтоTestSuite API не предоставляет метод для удаления тестов.

Я могу создавать свои собственные классы Test, которые расширяют исходные классы Test, переопределяют конкретные тесты, которые я не хочу выполнять, и аннотируем их с помощью @Ignore. Затем я запускаю JUnit на своих подклассах. Недостатком является то, что если новые классы Test будут добавлены в исходный проект, я не буду поднимать их автоматически. Мне придется следить за новыми классами Test по мере их добавления в исходный проект. Пока это мой лучший вариант, но я не чувствую себя идеальным.

Единственный другой вариант, о котором я могу подумать, это все равно запускать плохие тесты и игнорировать сбои. Однако запуск этих тестов занимает некоторое время (и не дает результатов!), Поэтому я предпочел бы вообще их не запускать. Кроме того, я не вижу способа заставить задачу Ant игнорировать сбои в определенных методах тестирования (опять же, я вижу, как это можно сделать для отдельных классов Test, но не для методов).

Ответы на вопрос(6)

Ваш ответ на вопрос