Запустите один тестовый метод с maven

Я знаю, что вы можете запускать все тесты в определенном classе, используя:

mvn test -Dtest=classname 

Но я хочу запустить индивидуальный метод и -Dtest = classname.methodname, похоже, не работает.

Чтобы запустить один тестовый метод в 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:

  1. mvn test -Dtest=DesignRulesTest

    Результат:
    [ERROR] Не удалось выполнить цель org.apache.maven.plugins: maven-surefire-plugin: 2.12 : test (default-test) в проекте pmd: никаких тестов не было выполнено!

  2. 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ы (ы) и методы (ы), используя следующий синтаксис:

  1. полный пакет: mvn test -Dtest = “com.oracle.tests. **”

  2. все методы в classе: mvn test -Dtest = CLASS_NAME1

  3. единственный метод из одного classа: mvn test -Dtest = CLASS_NAME1 # METHOD_NAME1

  4. множественный метод из нескольких 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 не предоставляет никакого способа сделать это. Но не стесняйтесь открывать вопрос 🙂

  • Mockito: как проверить метод был вызван на объект, созданный в рамках метода?
  • Использование диспетчера WPF в модульных тестах
  • Передайте комплексные параметры
  • Условно игнорирование тестов в JUnit 4
  • Очистка после всех тестов junit
  • Почему свойство, которое я хочу высмеять, должно быть виртуальным?
  • Как я могу проверить события в угловом?
  • как экспортировать (JUnit) набор тестов как исполняемый банку
  • Как тестировать асинхронные API-интерфейсы?
  • Как объединить тестовые абстрактные classы: расширить с помощью заглушек?
  • При использовании Mokito в чем разница между фактическим объектом и издеваемым объектом?
  • Давайте будем гением компьютера.