Запустите один тестовый метод с maven
Я знаю, что вы можете запускать все тесты в определенном classе, используя:
mvn test -Dtest=classname
Но я хочу запустить индивидуальный метод и -Dtest = classname.methodname, похоже, не работает.
- Организация модульных тестов Django
- Как запустить все тесты, принадлежащие определенной категории в JUnit 4
- Модульное тестирование кода C ++ - Инструменты и методология
- Visual Studio 2013 не обнаруживает модульные тесты
- Отфильтровать отчеты о покрытиях JaCoCo с помощью Gradle
- Как проверить код, связанный с базой данных с NUnit?
- Как проверить статическую функцию
- Mockito: InvalidUseOfMatchersException
- Группировка тестов JUnit
- Установка HttpContext.Current.Session в модульном тесте
- Разница между @Mock и @InjectMocks
- Может ли модуль тестирования проекта загрузить файл app.config целевого приложения?
- Как вы тестируете ASP.NET Core MVC Controllers, которые возвращают анонимные объекты?
Чтобы запустить один тестовый метод в Maven, вам необходимо предоставить команду как:
mvn -Dtest=TestCircle#xyz test
где TestCircle
– это имя тестового classа, а xyz
– метод тестирования.
Символы Wild Card также работают; как в имени метода, так и в имени classа.
Если вы тестируете в проекте с несколькими модулями, укажите модуль, в котором находится тест, с -pl
.
Для тестов интеграции используйте параметр it.test=...
вместо test=...
:
mvn -pl -Dit.test=TestCircle#xyz integration-test
Существует проблема с surefire 2.12. Вот что случилось с изменением maven-surefire-plugin с 2.12 по 2.11:
-
mvn test -Dtest=DesignRulesTest
Результат:
[ERROR] Не удалось выполнить цель org.apache.maven.plugins: maven-surefire-plugin: 2.12 : test (default-test) в проекте pmd: никаких тестов не было выполнено! -
mvn test -Dtest=DesignRulesTest
Результат: [INFO] — maven-surefire-plugin: 2.11 : test (default-test) @ pmd — … Запуск net.sourceforge.pmd.lang.java.rule.design.DesignRulesTest Тесты: 5 , Ошибки: 0, Ошибки: 0, Пропущено: 4, Истекшее время: 4.009 сек.
Что я делаю с моим TestNG (извините, JUnit не поддерживает это) тестовые примеры: я могу назначить группу тесту, который я хочу запустить
@Test(groups="broken")
А затем просто запустите ‘mvn -Dgroups = broken’.
Выполнение набора методов в одном тестовом classе. В версии 2.7.3 вы можете запускать только n тестов в одном тестовом classе.
ПРИМЕЧАНИЕ. Это поддерживается для junit 4.x и TestNG.
Вы должны использовать следующий синтаксис
mvn -Dtest=TestCircle#mytest test
Вы также можете использовать шаблоны
mvn -Dtest=TestCircle#test* test
С уверенностью 2.12.1 вы можете выбрать несколько методов (JUnit4X только в это время, патчи приветствуются)
mvn -Dtest=TestCircle#testOne+testTwo test
Проверить эту ссылку об отдельных тестах
Параметр теста, упомянутый tobrien, позволяет вам указать метод с использованием # перед именем метода. Это должно работать для JUnit и TestNG. Я никогда не пробовал, просто прочитал его на странице Surefire Plugin :
Задайте этот параметр для запуска отдельных тестов по имени файла, переопределяя параметры include / excludes. Каждый шаблон, который вы укажете здесь, будет использоваться для создания шаблона include, отформатированного как ** / $ {test} .java, поэтому вы можете просто набрать «-Dtest = MyTest», чтобы запустить один тест под названием «foo / MyTest.java». Этот параметр переопределяет параметры include / excludes и параметр TestNG suiteXmlFiles. начиная с 2.7.3. Вы можете выполнить ограниченное число методов в тесте с добавлением #myMethod или # my * ethod. Si тип «-Dtest = MyTest # myMethod» поддерживается для junit 4.x и testNg
Эта команда работает! mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Обратите внимание, что «-DTest» начинается с UPPER CASE «T».
В новых версиях JUnit есть бегун Категории: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
Но процедура выпуска JUnit не основана на maven, поэтому пользователи maven должны вручную помещать их в свои репозитории.
Вы можете запускать определенные тестовые classы (ы) и методы (ы), используя следующий синтаксис:
полный пакет: mvn test -Dtest = “com.oracle.tests. **”
все методы в classе: mvn test -Dtest = CLASS_NAME1
единственный метод из одного classа: mvn test -Dtest = CLASS_NAME1 # METHOD_NAME1
множественный метод из нескольких classов: mvn test -Dtest = CLASS_NAME1 # METHOD_NAME1, CLASS_NAME2 # METHOD_NAME2
Вы можете запустить один тестовый class, но не один метод в тестовом classе. Вы используете простое имя classа, а не полное имя classа. Итак, если у вас есть тест в «org.sonatype.test.MyTest», и это единственный тест, который вы хотите запустить, ваша командная строка будет выглядеть так:
mvn test -Dtest=MyTest
Насколько мне известно, плагин surefire не предоставляет никакого способа сделать это. Но не стесняйтесь открывать вопрос 🙂