Maven Surefire: запустить одиночный юнит-тест - PullRequest
4 голосов
/ 01 марта 2011

Я знаю, что можно запустить определенный тестовый класс с -Dtest=MyTest.Но возможно ли выполнить конкретный тест в пределах этого класса?

Т.е. если MyTest определяет testFoo() и testBar(), есть ли способ указать, что только testfoo()должен быть запущен?

Я знаю, что это легко сделать в IDE, но мне иногда нужно запускать тесты из командной строки на другом сервере.

Ответы [ 4 ]

5 голосов
/ 16 марта 2012

С Запуск отдельного теста с использованием подключаемого модуля Maven Surefire

С версией 2.7.3 вы можете запустить только n тестов в одном классе тестирования.

ПРИМЕЧАНИЕ: это поддерживается для junit 4.x и TestNG.

Вы должны использовать следующий синтаксис

mvn -Dtest=TestCircle#mytest test

Вы также можете использовать шаблоны

mvn -Dtest=TestCircle#test* test

3 голосов
/ 05 марта 2011

Будет доступно с Surefire 2.8, см. SUREFIRE-577

1 голос
/ 01 марта 2011

Не думайте, что это доступно.Вы можете обойти это, передав некоторые системные свойства и игнорируя выполнение тестов на основе значения свойства.Однако это, кажется, не добавляет большую ценность.Существует также TestNG, который предлагает дополнительные функции.

http://maven.apache.org/plugins/maven-surefire-plugin/examples/testng.html

0 голосов
/ 02 декабря 2013

Чтобы выполнить один тест за раз, запустите mvn test

mvn -Dtest=MyUnitlTest test

Чтобы выполнить один тест за раз и определенный метод из него:

mvn -Dtest=MyUnitTest#method test

где MyUnitTest - имя вашего теста, а #method - имя вашего метода.

Выполнить тесты с уверенностью:

mvn surefire:test
...