Исключение модульного теста определенного файла с использованием maven - PullRequest
3 голосов
/ 13 марта 2019

Я работаю над проектом, который недавно получил, и пока выполняю модульные тесты с использованием mvn test.

Итак, я перехожу к различным модулям и запускаю указанную выше команду, используя cmd и , при этом я узнал, что в двух файлах есть два тестовых случая, которые периодически дают сбой (это упоминалось в комментарии выше, что методы).

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

Я хочу исключить test1 () из A.java и test2 () из B.java

Я нашел ниже:

# Exclude one test method 
mvn verify -Dtest=!LegacyTest#testFoo
# Exclude two test methods
mvn verify -Dtest=!LegacyTest#testFoo+testBar

в этой ссылке, но я не уверен, насколько корректен вышеуказанный метод и как его использовать в моем случае, поскольку я не использовал maven до

Команды, которые я пробовал:

mvn verify -X -Dtest=!A#test1,!B#test2
mvn test -X -Dtest=!A#test1,!B#test2

Ошибка трассировки, которую я получил после выполнения вышеуказанных команд:

[INFO] Selera Utils - Database ............................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.419 s
[INFO] Finished at: 2019-03-13T19:21:16+05:30
[INFO] Final Memory: 17M/205M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project log4j: No tests were executed!  (Set -DfailIfNoTests=false to ignore this
 error.) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project log4j: No tests were exec
uted!  (Set -DfailIfNoTests=false to ignore this error.)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:748)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 19 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :log4j

1 Ответ

2 голосов
/ 13 марта 2019

В ссылке говорится, что следующий код запускает несколько тестов:

mvn test -Dtest=AppTest,Web*

Так что можно исключить несколько:

mvn verify -Dtest=!A#test1,B#test2

Я не пробовал, но это кажется логичным.

--- EDIT ---
Вы также можете использовать плагин maven-surefire-plugin, например that

--- РЕДАКТИРОВАТЬ 2 ---
Я пытаюсь добиться успеха, чтобы сначала убедиться, что вы используете maven-surefire-plugin с версией> 2.19 (добавьте -X, чтобы получить отладочную версию); тогда ваша команда будет:

mvn test -Dtest=!A#test1,!B#test2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...