简体   繁体   English

Maven Surefire 未运行 JUnit 5 测试

[英]Maven Surefire not running JUnit 5 tests

I've been trying to run JUnit 5 tests with Maven Surefire.我一直在尝试使用 Maven Surefire 运行 JUnit 5 测试。 However, it doesn't seem like Surefire is running any tests at all, even though I do have some, and in the default directory, too.然而,Surefire 似乎根本没有运行任何测试,即使我确实有一些,并且也在默认目录中。

This is the console output I'm getting: https://prnt.sc/ugo1xt这是我得到的控制台输出: https : //prnt.sc/ugo1xt

Here are the relevant parts of the pom.xml:以下是 pom.xml 的相关部分:

  <dependencies>
    <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter</artifactId>
       <version>5.7.0-M1</version>
       <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
      </plugin>
    </plugins>
  </build>


The surefire version is 3.0.0-M4.万无一失的版本是 3.0.0-M4。

I've tried pretty much any fix I could find on Google, although most of them seemed to be outdated.我已经尝试了几乎所有可以在 Google 上找到的修复程序,尽管其中大多数似乎已经过时。 Any help would be greatly appreciated.任何帮助将不胜感激。

Cheers!干杯!

EDIT: Here's an example of my tests:编辑:这是我的测试示例:

package bankprojekt;

import bankprojekt.verarbeitung.*;

import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;

public class GirokontoTest {
    Girokonto gk;

    @BeforeEach
    void setup(){
        gk = new Girokonto();
        gk.einzahlen(500);
    }

    @AfterEach
    void teardown(){
        gk = null;
    }

    @Test
    void abhebenMitWaehrungswechsel(){
        try{
            gk.abheben(195.583, Waehrung.BGN);
        }
        catch (Exception e) {
            System.out.println(e);
        }

        assertEquals(400, gk.getKontostand());
    }

    @Test
    void einzahlenMitWaehrungswechsel(){
        gk.einzahlen(195.583, Waehrung.BGN);

        assertEquals(600, gk.getKontostand());
    }
}

There are two things.有两件事。 First you should upgrade jacoco dependency to 0.8.5 otherwise it fails based on the JDK14 requirement.首先,您应该将 jacoco 依赖项升级到 0.8.5,否则根据 JDK14 要求它会失败。 (Created an pull request to your repository). (为您的存储库创建了一个拉取请求)。 If those things are configured appropriately the result is this:如果这些东西配置得当,结果是这样的:

I would also recommend to upgrade maven-compiler-plugin to most recent version and also all other plugins.我还建议将 maven-compiler-plugin 升级到最新版本以及所有其他插件。

As you can see you have WARNING's in your build which should be fixed and failing tests.正如您所看到的,您的构建中有警告,这些警告应该是固定的并且测试失败。

This build has been run on plain command line also with JUnit-Jupiter 5.7.0 which works perfectly.此构建已在普通命令行上运行,也与 JUnit-Jupiter 5.7.0 完美运行。

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ prog3-sose2020 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 9 source files to /Users/khmarbaise/ws-git-so/prog3-sose2020/target/classes
[WARNING] /Users/khmarbaise/ws-git-so/prog3-sose2020/src/main/java/bankprojekt/verarbeitung/Kunde.java: /Users/khmarbaise/ws-git-so/prog3-sose2020/src/main/java/bankprojekt/verarbeitung/Kunde.java uses or overrides a deprecated API.
[WARNING] /Users/khmarbaise/ws-git-so/prog3-sose2020/src/main/java/bankprojekt/verarbeitung/Kunde.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ prog3-sose2020 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/khmarbaise/ws-git-so/prog3-sose2020/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ prog3-sose2020 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /Users/khmarbaise/ws-git-so/prog3-sose2020/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:3.0.0-M4:test (default-test) @ prog3-sose2020 ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running bankprojekt.GirokontoTest
[ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.087 s <<< FAILURE! - in bankprojekt.GirokontoTest
[ERROR] bankprojekt.GirokontoTest.abhebenMitWaehrungswechsel  Time elapsed: 0.052 s  <<< FAILURE!
org.opentest4j.AssertionFailedError: expected: <448.87081188037814> but was: <400.0>
    at bankprojekt.GirokontoTest.abhebenMitWaehrungswechsel(GirokontoTest.java:31)

[INFO] Running bankprojekt.WaehrungTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s - in bankprojekt.WaehrungTest
Kunde Mustermann, Max zerst�rt
[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Failures: 
[ERROR]   GirokontoTest.abhebenMitWaehrungswechsel:31 expected: <448.87081188037814> but was: <400.0>
[INFO] 
[ERROR] Tests run: 5, Failures: 1, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.792 s
[INFO] Finished at: 2020-09-14T17:50:43+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project prog3-sose2020: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/khmarbaise/ws-git-so/prog3-sose2020/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[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.

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.154 sec <<< FAILURE!测试运行:1,失败:0,错误:1,跳过:0,经过的时间:0.154 秒 <<< 失败! - in TestApplicationTest JUnit Jupiter Time elapsed: 0.146 sec <<< ERROR! - 在 TestApplicationTest JUnit Jupiter Time elapsed: 0.146 sec <<< 错误! null空值

I hit this strange error.我遇到了这个奇怪的错误。 No logs or traces shown.没有显示日志或痕迹。

Maven 3.6.3 Junit-jupiter 5.1.0 mockito-junit-jupiter mockito-core Maven 3.6.3 Junit-jupiter 5.1.0 mockito-junit-jupiter mockito-core

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM