Я знаю, что вы можете запустить все тесты в одном классе с помощью:Выполнить один метод испытания с мавена
mvn test -Dtest=classname
Но я хочу, чтобы запустить отдельный метод и -Dtest не кажется = classname.methodname работать.
Я знаю, что вы можете запустить все тесты в одном классе с помощью:Выполнить один метод испытания с мавена
mvn test -Dtest=classname
Но я хочу, чтобы запустить отдельный метод и -Dtest не кажется = classname.methodname работать.
Для запуска одного метода испытания в Maven, вам необходимо предоставить команду как:
mvn -Dtest=TestCircle#xyz test
где TestCircle
является тест имя класса и xyz
- метод тестирования.
Дикие карточные персонажи также работают; как в имени метода, так и в имени класса.
Если вы тестируете в проекте с несколькими модулями, укажите модуль, в котором находится тест, с -pl <module-name>
.
Для интеграции тестов использовать it.test=...
вариант вместо test=...
:
mvn -pl <module-name> -Dit.test=TestCircle#xyz integration-test
Хотелось бы, чтобы был способ слияния ответы ... это правильно, но ссылка, взятая из нее, находится в другом сообщении: http://maven.apache.org/plugins/maven-surefire-plugin/examples/single-test.html – cjstehno
Мне было интересно, имя класса должно быть полностью квалифицированным именем класса с именем пакета и ответом на то, что при работе полностью квалифицированного имени также работает только имя класса, Maven выглядит для вас классом. Я предполагаю, что если имя неоднозначно, оно выдаст ошибку. – stivlo
a всегда получает ошибку: ** Никаких тестов не было выполнено ** –
Насколько мне известно, surefire plugin не предоставляет никаких средств для этого. Но не стесняйтесь открывать issue :)
-1, потому что это возможно, см. Главный ответ – stivlo
Вы можете запустить только один тестовый класс, но не один метод в тестовом классе. Вы используете простое имя класса, а не полное имя класса. Так что, если у вас есть тест на «org.sonatype.test.MyTest», и что это единственный тест, который вы хотите запустить, командная строка будет выглядеть следующим образом:
mvn test -Dtest=MyTest
Что мне делать с моим TestNG, (извините, JUnit не поддерживает это) тестовые примеры, я могу назначить группу теста я хочу запустить
@Test(groups="broken")
А потом просто запустить «MVN -Dgroups = сломана».
Это хороший ответ. В моем случае тест попытался выполнить, но некоторые компоненты шва не были настроены правильно, поэтому похоже, что это также пропускает часть кода установки. –
Исправить. Вам нужно либо поместить group = в ваш @BeforeMethod, либо сделать @BeforeMethod (alwaysRun = true) – tunaranch
Пожалуйста, дайте мне знать, что такое группа здесь, так как я получаю компиляцию. –
Новые версии JUnit содержит Категории бегуна: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
Но не Maven на основе отпуская процедура JUnit, так Maven пользователи должны поместить его вручную в репозиториях.
Ницца. Но я не вижу, как это отвечает на вопрос. –
Subj поддерживается версией maven-surefire-плагина версии 2.7.3: http://maven.apache.org/plugins/maven-surefire-plugin/examples/single-test.html –
тест параметр упоминается tobrien позволяет указать метод с использованием # перед именем метода. Это должно работать для JUnit и TestNG. Я никогда не пробовал, просто прочитать его на Surefire Plugin page:
Specify this parameter to run individual tests by file name, overriding the includes/excludes parameters. Each pattern you specify here will be used to create an include pattern formatted like **/${test}.java, so you can just type "-Dtest=MyTest" to run a single test called "foo/MyTest.java". This parameter overrides the includes/excludes parameters, and the TestNG suiteXmlFiles parameter. since 2.7.3 You can execute a limited number of method in the test with adding #myMethod or #my*ethod. Si type "-Dtest=MyTest#myMethod" supported for junit 4.x and testNg
Там есть проблема с 2,12 верными. Это то, что происходит со мной, изменяя maven-surefire-plugin с 2.12 до 2.11:
MVN тест -Dtest = DesignRulesTest
Result:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project pmd: No tests were executed!
тест MVN -Dtest = DesignRulesTest
Result: [INFO] --- maven-surefire-plugin:2.11:test (default-test) @ pmd --- ... Running net.sourceforge.pmd.lang.java.rule.design.DesignRulesTest Tests run: 5, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 4.009 sec
Запуск набор методов в одном тесте класса С версией 2.7.3 вы можете запускать только n тестов в одном тестовом классе.
ПРИМЕЧАНИЕ: оно поддерживается для junit 4.x и TestNG.
Вы должны использовать следующий синтаксис
mvn -Dtest=TestCircle#mytest test
Вы можете использовать шаблоны тоже
mvn -Dtest=TestCircle#test* test
По 2.12.1 верных, вы можете выбрать несколько методов (JUnit4X только в это время, патчи приветствуются)
mvn -Dtest=TestCircle#testOne+testTwo test
Проверить это link about single tests
В моем случае мне пришлось дважды указать тестовое имя TestClass # как mvn -Dtest = "TestCircle # myTest" test –
@PratikKhadloya Любая идея, как это работает для зависимых тестов? Скажем, у меня есть test1(), test2(), test3() в TestClass, а test2 зависит от test1. Как я могу запустить test2()? – Ziska
Я думаю, что если у вас есть зависимости между вашими испытаниями, вы делаете что-то неправильно. Каждый тест должен быть независимым от других тестов. Вам нужно удалить муфту между ними. –
Эта команда работает! mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Обратите внимание, что «-DTest» начинается с UPPER CASE «T».
Мне было бы интересно узнать, как это сделать. Однако, если я обнаружил, что делаю это довольно часто, я думаю, что тест может быть кандидатом для разделения на свой собственный класс, поэтому вы можете использовать синтаксис 'mvn test -Dtest = classname'. –
Вы хотите знать, как это сделать с помощью командной строки? Или использование IDE (eclipse) будет работать для вас? –
Я смотрел на командную строку. Я думаю, что плагин junit eclipse позволит вам это сделать. – BillMan