No tests were executed set dfailifnotests false to ignore this error

JUnit 5 Test Suites don’t run with surefire 3.0.0-M3 under pure Maven #1778

Comments

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

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 battle earth error middle

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.

Comments

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

Читайте также:  Smtp error code 535 authentication failed yandex

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 не может сделать вашу проблему воспроизводимой на моей стороне. Поэтому, пожалуйста, всегда прикрепляйте ссылку в следующий раз, и мы посмотрим. Один парень сделал это на прошлой неделе, и это очень помогло.

Читайте также:  Tp link td 8960n прошивка

Источник

Can’t selectively run an inherited test case #1563

Comments

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

Источник

Smartadm.ru
Adblock
detector