Содержание
- JUnit 5 Test Suites don’t run with surefire 3.0.0-M3 under pure Maven #1778
- Comments
- Overview
- Problem reproduction
- Context
- Links
- How to run unit test with Maven
- 1. Maven Java Project
- 2. Maven Test
- Download Source Code
- References
- Comments
- Плагин Surefire maven не выполняет ни один из тестов
- 3 ответа
- Can’t selectively run an inherited test case #1563
- Comments
- TestNG Version
- Expected behavior
- Actual behavior
- Is the issue reproductible on runner?
- Test case sample
JUnit 5 Test Suites don’t run with surefire 3.0.0-M3 under pure Maven #1778
Overview
I’m trying to launch test suite with surefire plugin under Maven version 3.0.0-M3. But if I do it with @RunWith(JUnitPlatform.class) annotation in pure Maven, situation No tests were executed! occurs. I figured out that this problem appears with 2.22.x version surefire, on the earlier versions all is fine. Therefore, dynamic tests with @TestFactory work fine with newer versions and do not work on 2.21.x and earlier.
Problem reproduction
I faced this problem during migration to JUnit 5 a part of open-source project Apache Ignite [1]. Also, for clarity, I tried to reproduce it on a small project [2]. I tried to run tests in two ways: with @SelectClasses annotation and dynamically, with @TestFactory annotation (commented) [3]. The first approach works fine with 2.21.x version surefire and earlier and the second one is vice versa. For me, it is necessary to run the test suite MainSuiteTest under pure maven with the newest version that supports Java 11. I use command mvn -Dtest=MainSuiteTest test and get the next result:
From IDE both approaches work fine and it does not depend on the surefire version.
Context
- Surefire plugin: 3.0.0-M3
- JUpiter: 5.3.2
- Vintage: 5.3.2
- Platform launcher: 1.3.2
- Platform runner: 1.3.2
- IDE: Intellij IDEA 2018.1.7 (Ultimate)
- Maven: 3.6.0
- Java: 1.8.0_152
Links
The text was updated successfully, but these errors were encountered:
Источник
How to run unit test with Maven
By mkyong | Last updated: November 5, 2018
Viewed: 757,874 (+1,556 pv/w)
You can use mvn test to run unit test in Maven. Few examples :
The default maven-surefire-plugin is outdated, make sure update to the latest to support new features, like pattern matching or run a single test method, and etc.
1. Maven Java Project
Review a simple Java project how to run the unit test classes in Maven.
1.1 Directory Structure.
1.2 Maven + JUnit 5 examples.
1.3 Two Java classes, later we will create unit test classes for it.
1.4 Test class for MagicBuilder
1.5 Test class for MessageBuilder
2. Maven Test
2.1 Run all test classes.
2.2 Run a single test class TestMessageBuilder
2.3 Run a single test method testHelloWorld() from the test class TestMessageBuilder
Download Source Code
References
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.
When i trying run the single test by using maven, getting this error
Ex: mvn -Dtest=Reports test
where, Reports is class
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.
12:test (default-test) on project TestNGReports: No tests were executed! (Set –
DfailIfNoTests=false to ignore this error.) -> [Help 1]
I am getting the same, is your problem resolved?
Just to note, mvn test will check tests on “test.java” package, by default.
According to the assertEquals() API (http://www.junit.org/apidocs/org/junit/Assert.html) the first argument is an expected value, the second is an actual one.
The example has incorrect arguments order.
Article is updated to JUnit 5.
Any recommendations on how to fail maven build when I have errors in test
Ex: [INFO] Tests run: 2, Failures: 0, Errors: 1, Skipped: 0
Currently maven reports the build as success
I have a testng.xml with specific groups to be executed , when I execute via mvn , all the test cases are getting executed , it is not getting executed specific group.
Any idea how this can be achieved
I have different project structure how can I run my unit test using maven mvn clean install. All test are running fine with mvn test.
Thank you very much!
Could you tell me please. How I can run “one test method” if my test class (TestApp1.java) have more one test methods?
This command “mvn -Dtest=TestApp1 test” execute test class
$ mvn -Dtest=TestApp1#onetestmethod test
actually i don’t know any thing about this maven ,i know only Ant and how can i run my project from ant to maven,please me help me to out.
Earlier my projects were having Junit test in source code only as I am using ant.
Now we have shifted to Maven. Can you tell me how can i run the junit test which are not test test dir but in main dir?
it is really wonderfull. but i have a problem
[INFO] Reactor Summary:
[INFO]
[INFO] TestParent …………………………………. SUCCESS [0.012s]
[INFO] Test1 ……………………………………… SUCCESS [4.910s]
[INFO] Test2 ……………………………………… SUCCESS [0.571s]
cd/TestParent> mvn test
result Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
but i have
more test functions,
test1 class i have more than 3 funtions tests
and Test class2 I hve 6 Tests,
when I do like this , cd parent/cd test1/ mvn test.
only 1 Function run, other 5 not,
when i do with spesific class like this
mvn -Dtest=test3 test ( 6 funtions)
it is ok. it runs all functions
Источник
Плагин Surefire maven не выполняет ни один из тестов
У меня есть проект с четырьмя пакетами. С тремя из них все нормально. Я создал тесты JUnit, и они выполняются во время сборки или пока я запускаю команду mvn test.
Но мой четвертый пакет, содержащий всего один класс. Я создал для него тест JUnit, но когда я запускаю сборку, Surefire не видит этот тестовый класс. Все остальные восемь тестовых классов выполняются, но этот игнорируется.
Когда я пытаюсь выполнить только этот тестовый класс, явно используя
mvn -Dtest = com.company.dpt.prj.pkg.MySpecificClassTest test
Я получаю эти сообщения
Я просмотрел тестовый код построчно и не смог найти никаких причин для такого поведения.
Я даже удалил тестовый файл и восстановил очень простой. Он все еще не выполнен.
Кто-нибудь сталкивался с чем-то подобным? Мы будем благодарны за любую подсказку, так как я не смог найти никаких подсказок. Я использую JUnit 4.11
Все тесты изначально были созданы с использованием Netbeans v.12 «Инструменты-> Создать / обновить тест», а затем отредактированы для отражения функциональности методов. Однако все тесты, кроме этого, работают нормально как в графическом интерфейсе Netbeans, так и в интерфейсе командной строки «mvn test». Этот игнорируется. Цель метода, который я хочу протестировать, — создать HttpEntity для клиента REST API. Вот код теста:
Моя проблема в том, что он не дает сбоев в тестовом коде. Я буду рад, если это так, потому что я смогу отладить его чем. Это просто не выполняется. Я попытался обновить JUnit до версии 4.13.1 и плагин surefire maven до версии 3.0.0-M5, но это не повлияло.
Я попытался запустить mvn с параметром -e и получил следующую трассировку стека, но она по-прежнему не дала мне никаких подсказок, почему это происходит.
3 ответа
Я нашел причину проблемы. Каким-то образом, когда IDE сгенерировала (и регенерировала) этот тестовый файл, она поместила неправильный импорт для аннотации @Test. Вместо
Следовательно, движок jupiter, запущенный с помощью surefire, не распознал аннотацию @Test. После того, как я исправил, был выполнен тест импорта.
Вы не можете использовать этот шаблон:
Поскольку подключаемый модуль Surefire и Failsafe не поддерживает полное имя класса. Он выполняет поиск в файловой системе, поэтому я показал вам, как использовать косую черту в конфигурации. В документации указан этот параметр, прочтите его еще раз здесь:
ПРИМЕЧАНИЕ. Используйте синтаксис, например, «foo / MyTest.java», « /MyTest.java», «MyTest» для параметра «test» (см. включает / исключает). **
Гэри, твоя проблема в том, что ты говоришь о JUnit, но о каком? Есть две версии 4 и 5, и, более конкретно, вы можете опубликовать исходный код в нашей Apache JIRA (или в Stackoverflow), а затем я, как коммиттер, могу посмотреть ваш код. На самом деле это невозможно воспроизвести без него, потому что только чистый текст в stackoverflow не может сделать вашу проблему воспроизводимой на моей стороне. Поэтому, пожалуйста, всегда прикрепляйте ссылку в следующий раз, и мы посмотрим. Один парень сделал это на прошлой неделе, и это очень помогло.
Источник
Can’t selectively run an inherited test case #1563
TestNG Version
Expected behavior
and the test method testDistribution (which RandomWrapperRandomTest inherits from BaseRandomTest ) is run.
Actual behavior
Is the issue reproductible on runner?
- Shell
- Maven
- Gradle
- Ant
- Eclipse
- IntelliJ
- NetBeans
Test case sample
The text was updated successfully, but these errors were encountered:
just in case it was looking for a regex that would match a full signature as in a Javadoc @link tag.
To work around this for now, I’m running the test I need in a branch where I’ve deleted all other tests.
Could you try to run the test from your IDE? Do you reproduce the issue?
Could you try to run the test from your IDE? Do you reproduce the issue?
@juherr I am not sure if this can be executed from within an IDE, because one needs to right click on a method and then choose run as testng. But for doing that, one has to open up the class and I don’t think the IDE displays/lists inherited methods.
@Pr0methean — I attempted at recreating this using TestNG 6.12 but using a suite xml file that looks like below. I can’t reproduce the problem using the suite xml file approach.
@juherr — Do you think that this could be related to the surefire plugin ?
Here’s the output
@juherr I am not sure if this can be executed from within an IDE, because one needs to right click on a method and then choose run as testng. But for doing that, one has to open up the class and I don’t think the IDE displays/lists inherited methods.
I think this can be done by manually creating a launch configuration, and type the method name (the text box is editable)
@missedone — Thanks Nick. I didn’t know that..
Do you think that this could be related to the surefire plugin?
@krmahadevan Yes, it is what I suppose but we need to check our own runners first.
@juherr — This works fine in both eclipse and intellij. I think this is mostly a surefire plugin issue only.
I used the eclipse testng plugin version 6.12.0.201709050550
IntelliJ screenshot
Источник
Issue
I want to run the build for Apache James which has a huge test suite that is running very long due to tests that irrelevant to me, e.g. tests concerning RabbitMQ. Thus I’d like to exclude those and I want to do so from the command line (not by editing POMs). I’m using Maven 3.6.3 on Java 11 OpenJDK. The project uses JUnit5 and maven-surefire-plugin 2.22.2.
Now, I would expect the following to work:
For example, to run only test methods in the org.example.MyTest test
class you can execute mvn -Dtest=org.example.MyTest test from the
command line.
But it doesn’t work. In fact, as soon as I set the test
parameter to anything else than an empty string, all tests will be skipped. I tried some of the syntax that is supposedly supported…
mvn package -Dtest=*
mvn package -Dtest=".*"
mvn package -Dtest=!SomethingFishy
mvn package -Dtest='!MavenHeadache'
mvn package -Dtest='!%regex[.*HelpMe.*]'
…but the result is always the same:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
(default-test) on project testing-base: No tests were executed!
(Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
I’m running the package
goal, as it does the full build, but test
behaves the same. Also tried specifying -Dincludes=...
/ -Dexcludes=...
, which had no effect at all: All tests are executed regardless and the parameters don’t even show up in the output of mvn -X ...
. This behavior doesn’t change when update maven-surefire-plugin to the latest version which is 3.0.0-M5.
Do I understand something wrong here? How can i specify inclusions/exclusions in this setup?
Update: It looks like this is caused by nested projects and/or James’ project structure in particular. If I enter a «leaf project», e.g. core
, then inclusions/exclusions begin to work:
cd core
mvn test -Dtest=HostTest # will only run HostTest, as expected
mvn test -Dtest=!HostTest # will run all tests but HostTest, as expected
As suggested by RobertScholte, I have looked at the maven-surefire-plugin configuration, but couldn’t find anything that seems to be related to this behavior.
Solution
The error message tells what you need to know: in project testing-base
which is the first to run, there’s no test matching your pattern, so it fails to ensure you won’t have a false impression of success.
It then suggests to use -DfailIfNoTests=false
option to let maven ignore modules that don’t have any test matching the pattern (it’s probably what you need).
Answered By — Matthieu Baechler
У меня есть проект с четырьмя пакетами. С тремя из них все нормально. Я создал тесты JUnit, и они выполняются во время сборки или пока я запускаю команду mvn test.
Но мой четвертый пакет, содержащий всего один класс. Я создал для него тест JUnit, но когда я запускаю сборку, Surefire не видит этот тестовый класс. Все остальные восемь тестовых классов выполняются, но этот игнорируется.
Когда я пытаюсь выполнить только этот тестовый класс, явно используя
mvn -Dtest = com.company.dpt.prj.pkg.MySpecificClassTest test
Я получаю эти сообщения
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.058 s
[INFO] Finished at: 2020-12-19T23:58:01-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project my-project-name: No tests were executed! (Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[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
Я просмотрел тестовый код построчно и не смог найти никаких причин для такого поведения.
Я даже удалил тестовый файл и восстановил очень простой. Он все еще не выполнен.
Кто-нибудь сталкивался с чем-то подобным? Мы будем благодарны за любую подсказку, так как я не смог найти никаких подсказок. Я использую JUnit 4.11
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.11</version>
</dependency>
Все тесты изначально были созданы с использованием Netbeans v.12 «Инструменты-> Создать / обновить тест», а затем отредактированы для отражения функциональности методов. Однако все тесты, кроме этого, работают нормально как в графическом интерфейсе Netbeans, так и в интерфейсе командной строки «mvn test». Этот игнорируется. Цель метода, который я хочу протестировать, — создать HttpEntity для клиента REST API. Вот код теста:
/**
* Test of prepareRequest method, of class BatchServiceClient.
* @throws java.net.URISyntaxException
*/
@Test
public void testPrepareRequest() throws URISyntaxException {
System.out.println("prepareRequest");
ObjectMapper mapper = Json.mapper();
URL configFileUrl = this.getClass().getClassLoader().getResource("config_f.json");
if (configFileUrl == null) {
fail("Missing configuration file");
} else {
File configFile = new File(configFileUrl.toURI());
BatchConfig config = BatchConfigLoader.loadConfig(configFile);
assertNotNull(config);
boolean validated = config.validate();
assertTrue(validated);
BatchServiceClient client = new BatchServiceClient(config, null, null, null, null, null, null);
List<Object> requestData = Arrays.asList("16759408", "", "", "", "The Home Depot", "",
"Baltimore", "MD", "", "840", "", "", "", "", "", "", "", "", "", "", 10, "",
true, true, "merchantName", "merchantName", "merchantName");
HttpEntity<String> request = client.prepareRequest(requestData);
assertNotNull(request);
}
}
Моя проблема в том, что он не дает сбоев в тестовом коде. Я буду рад, если это так, потому что я смогу отладить его чем. Это просто не выполняется. Я попытался обновить JUnit до версии 4.13.1 и плагин surefire maven до версии 3.0.0-M5, но это не повлияло.
Я попытался запустить mvn с параметром -e и получил следующую трассировку стека, но она по-прежнему не дала мне никаких подсказок, почему это происходит.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoFailureException: No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)
at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution (SurefireHelper.java:149)
at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary (SurefirePlugin.java:364)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked (AbstractSurefireMojo.java:1041)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute (AbstractSurefireMojo.java:857)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
3 ответа
Лучший ответ
Я нашел причину проблемы. Каким-то образом, когда IDE сгенерировала (и регенерировала) этот тестовый файл, она поместила неправильный импорт для аннотации @Test. Вместо
import org.junit.jupiter.api.Test;
Это размещено
import org.junit.Test;
Следовательно, движок jupiter, запущенный с помощью surefire, не распознал аннотацию @Test. После того, как я исправил, был выполнен тест импорта.
0
Gary Greenberg
21 Дек 2020 в 21:44
Вы не можете использовать этот шаблон:
-Dtest=com.company.dpt.prj.pkg.MySpecificClassTest
Поскольку подключаемый модуль Surefire и Failsafe не поддерживает полное имя класса. Он выполняет поиск в файловой системе, поэтому я показал вам, как использовать косую черту в конфигурации. В документации указан этот параметр, прочтите его еще раз здесь:
ПРИМЕЧАНИЕ. Используйте синтаксис, например, «foo / MyTest.java», « /MyTest.java», «MyTest» для параметра «test» (см. включает / исключает). **
Гэри, твоя проблема в том, что ты говоришь о JUnit, но о каком? Есть две версии 4 и 5, и, более конкретно, вы можете опубликовать исходный код в нашей Apache JIRA (или в Stackoverflow), а затем я, как коммиттер, могу посмотреть ваш код. На самом деле это невозможно воспроизвести без него, потому что только чистый текст в stackoverflow не может сделать вашу проблему воспроизводимой на моей стороне. Поэтому, пожалуйста, всегда прикрепляйте ссылку в следующий раз, и мы посмотрим. Один парень сделал это на прошлой неделе, и это очень помогло.
Что касается импорта аннотации Test, не плагин Surefire не распознал импорт @Test. На самом деле, это ваша вина, что вы не написали правильный исходный код включая POM , а компилятор скомпилировал код в том виде, в каком он был, даже если вы объедините JUnit4 и JUnit5 в POM < / сильный>. Затем Surefire запустил библиотеки JUnit, которые затем отвечают за распознавание аннотаций, а не Surefire. Алгоритм Surefire предпочел бы использовать JUnit5, если вы комбинируете JUnit4 и JUnit5-Jupiter, и именно по этой причине аннотация org.junit.Test была проигнорирована, потому что Юпитер не находит ее и аннотацию Юпитера.
0
tibor17
22 Дек 2020 в 07:32
См. документацию.
В вашем случае команда должна выглядеть так:
mvn -Dtest=com/company/dpt/prj/pkg/MySpecificClassTest.java test
-1
tibor17
21 Дек 2020 в 10:03
Вопрос:
Когда я запускаю один тест в Maven с помощью этой команды:
mvn test -Dtest=InitiateTest
Я получаю следующий результат:
No tests were executed!
Он работал пару минут назад, но теперь он почему-то прекратил работать. Я попытался запустить mvn clean
пару раз перед запуском теста, это не поможет.
Тест выглядит следующим образом:
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class InitiateTest {
public static FirefoxDriver driver;
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
}
@Test
public void initiateTest() throws Exception {
driver.get("http://localhost:8080/login.jsp");
...
}
@After
public void tearDown() throws Exception {
driver.close();
} }
UPDATE:
Это вызвано добавлением этой зависимости в POM:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
Когда я удаляю его, все работает нормально. Все работает нормально, даже когда я добавляю эти две зависимости вместо предыдущего:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
Это странно.
Лучший ответ:
Вы, вероятно, собираете JUnit3 в своем пути к классам, что эффективно отключает JUnit4.
Запустите mvn dependency: tree, чтобы узнать, откуда он входит, и добавьте исключение в зависимость.
Ответ №1
Возможно, вы видите эту ошибку, которая, как говорят, влияет на surefire 2.12, но не на 2.11?
Ответ №2
У меня была та же проблема. Это было вызвано зависимостью testng, которая появилась с junit3. Просто добавьте в него инструкцию исключения, и тесты должны работать.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium</artifactId>
<version>2.0b1</version>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
Ответ №3
Я изменил “maven-surefire-plugin” на версию 2.14.1 (от 2.12) и помог
Ответ №4
Была аналогичная проблема, связанная с зависимостью jtestr. Оказывается, одна из его зависимостей собирала junit-3.8.1. Я решил это, используя выражение об исключении ниже
<dependency>
<groupId>org.jtestr</groupId>
<artifactId>jtestr</artifactId>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
<version>0.6</version>
<scope>test</scope>
</dependency>
Ответ №5
изменилось с 2.6 на 2.18.1 и теперь все работает
Ответ №6
У меня была аналогичная проблема. Поэтому я должен был построить проект из корневого уровня проекта, используя
mvn clean install -DskipTests=True
И затем запустите тестовую команду из каталога, в котором находился тестовый пакет pom
mvn test -Dtest=TestClass
Также убедитесь, что значение параметра skip равно true. Например, в моем файле pom значение по умолчанию skip равно true.
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>${skipTests}</skip>
</configuration>
</plugin>
</build>
Поэтому, когда я запускаю тест maven, я устанавливаю его на false
mvn test -Dtest=TestUserUpdate* -DskipTests=false
Ответ №7
Попробуйте запустить maven в режиме отладки. Это может дать вам больше информации.
mvn -X -Dtest=InitiateTest test
Ответ №8
В моем случае я запускал один тест, используя mvn test -Dtest = MyTest. Моя ошибка заключалась в том, что в единственном тесте была отмечена аннотация @test, поэтому в файле junit не было найдено никаких тестов. Doh!
Ответ №9
В сеансе сборки pom.xml включите это:
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
</plugin>
</plugins>
</build>
Ответ №10
Возможно, так же бесполезно, как и моя последняя попытка, но я просто прочитал тестовый класс JUnit 4, который должен быть импортирован org.junit.Test. * и org.junit.Assert. *.
Поскольку у вас нет импорта Assert, возможно, стоит попробовать это быстро, чтобы быть уверенным…
Ответ №11
Я действительно не понимаю, как аннотация @Test обрабатывает ваш тест, но можете ли вы попробовать префикс вашего тестового метода с помощью “теста”?
public void testInit() throws Exception {
driver.get("http://localhost:8080/login.jsp");
...
}
Ответ №12
mvn test -Dtest='xxxx.*Test' -Dmaven.test.failure.ignore=true -DfailIfNoTests=false
У меня есть тот же вопрос, что не было выполнено никаких тестов!
Мое предложение добавляет еще один параметр, который -Dmaven.test.failure.ignore=true -DfailIfNoTests=false
может решить.