Я знаю, что вы можете запустить все тесты в определенном классе, используя:
mvn test -Dtest=classname
Но я хочу запустить отдельный метод, и -Dtest = classname.methodname, похоже, не работает.
java
unit-testing
maven-2
Billman
источник
источник
mvn test -Dtest=classname
синтаксис.Ответы:
Чтобы запустить один метод тестирования в Maven, вам нужно предоставить команду как:
где
TestCircle
имя тестового класса иxyz
теста и метод теста.Дикие символы также работают; как в имени метода, так и в имени класса.
Если вы тестируете в многомодульном проекте, укажите модуль, с которым будет проходить тест
-pl <module-name>
.Для интеграционных тестов используйте
it.test=...
параметр вместоtest=...
:источник
-pl <module-name>
.-DfailIfNoTests=false
чтобы пропустить проекты без теста.No Tests Were Executed
происходит, когда вы пытаетесь запустить тест из корневого проекта, и есть модули без тестов вообще.mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Обратите внимание, что "-DTest" начинается с ВЕРХНЕГО СЛУЧАЯ 'T'.Есть проблема с верным 2.12. Вот что случилось со мной, изменив maven-surefire-plugin с 2.12 на 2.11:
mvn test -Dtest=DesignRulesTest
mvn test -Dtest=DesignRulesTest
источник
@Category(IntegrationTest.class)
, используйте-Dit.test=ClassName
, в противном случае вы получитеNo tests were executed!
даже с последними версиями плагина.Что я делаю с моим TestNG, (извините, JUnit не поддерживает это) контрольные примеры - я могу назначить группу для теста, который я хочу выполнить
А затем просто запустите 'mvn -Dgroups = broken'.
источник
Запуск набора методов в одном классе тестирования В версии 2.7.3 вы можете запустить только n тестов в одном классе тестирования.
ПРИМЕЧАНИЕ: это поддерживается для junit 4.x и TestNG.
Вы должны использовать следующий синтаксис
Вы также можете использовать шаблоны
Начиная с версии 2.12.1, вы можете выбрать несколько методов (только JUnit4X, патчи приветствуются)
Проверьте эту ссылку на отдельные тесты
источник
Вы можете запустить определенный тестовый класс (ы) и метод (ы), используя следующий синтаксис:
источник
Эта команда работает !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Обратите внимание, что "-DTest" начинается с ВЕРХНЕГО СЛУЧАЯ 'T'.источник
Тест параметр упоминается tobrien позволяет указать метод с использованием # перед именем метода. Это должно работать для JUnit и TestNG. Я никогда не пробовал это, просто прочитайте это на странице Плагина Surefire :
источник
Новые версии JUnit содержат бегунок категорий: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
Но процедура выпуска JUnit не основана на maven, поэтому пользователи maven должны вручную поместить ее в свои репозитории.
источник
С верным плагином версии 2.22.1 (возможно, ранее) вы можете запускать одиночный тест с использованием свойства testnames при использовании testng.xml
Учитывая следующее testng.xml
с помощью pom.xml
Из командной строки
Дальнейшее чтение - плагин Maven surefire с использованием testng
источник
Вы можете запустить один тестовый класс, но не один метод внутри тестового класса. Вы используете простое имя класса, а не полное имя класса. Итак, если у вас есть тест в «org.sonatype.test.MyTest» и это единственный тест, который вы хотите запустить, ваша командная строка будет выглядеть так:
источник
Насколько мне известно, надёжный плагин не предоставляет никакого способа сделать это. Но не стесняйтесь, чтобы открыть вопрос :)
источник