簡體   English   中英

JUnit 5 無法從命令行找到測試

[英]JUnit 5 fails to find Tests from the command line

類似的 stackoverflow 帖子:“JUnit 5 ConsoleLauncher 不起作用”回答 Marc Philipp 2018 年 3 月 13 日。

我試圖復制上面發布的示例。 JUnit 測試 class 為“DisplayNameDemo.java”,如下所示:

DisplayNameDemo.java

   import org.junit.jupiter.api.DisplayName;
   import org.junit.jupiter.api.Test;

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

   @DisplayName("A special test case")
   public class DisplayNameDemo {
 
      @Test
      @DisplayName("Custom test name containing spaces")
      void testWithDisplayNameContainingSpaces() {
      }

      @Test
      @DisplayName("╯°□°)╯")
      void testWithDisplayNameContainingSpecialCharacters() {
      }

      @Test
      @DisplayName("😱 ")
      void testWithDisplayNameContainingEmoji() {
      }
  }

這是我的 JUnit 5 命令行命令:“java -jar junit-platform-console-standalone-1.6.2.jar --classpath.--select-class DisplayNameDemo --include-classname '.*'”

這在我執行時失敗了,但在帖子中執行時通過了。 這是我失敗結果的一部分:

~/junit5.6.2/console$ java -jar junit-platform-console-standalone-1.6.2.jar --classpath .    --select-class DisplayNameDemo --include-classname '.*'

Thanks for using JUnit! Support its development at https://junit.org/sponsoring

Usage: ConsoleLauncher [-h] [--disable-ansi-colors] [--disable-banner]
                   [--fail-if-no-tests] [--scan-modules] [--scan-classpath[=PATH[;|:
                   PATH...]]]... [--details=MODE] [--details-theme=THEME]
                   [--reports-dir=DIR] [-c=CLASS]... [--config=KEY=VALUE]... [-cp=PATH

我將所有類與 junit-platform-console-standalone-1.6.2.jar 文件放在同一目錄中。 我還將我的類路徑設置為本地目錄“。” 如上圖所示。

我不明白為什么這個例子失敗了。 我非常感謝一些幫助——尤其是來自 Marc Philipp 或 Somuras 在 stackoverflow 上的幫助。 謝謝你的幫助 !

我猜你不是用--classpath指向你編譯的 Java 類( .class文件所在的位置),而是指向你的原始.java文件。

如果你使用 Maven 來構建你的項目,你編譯的測試類在target/test-classes里面。 您現在可以從項目的根目錄使用獨立控制台啟動器,例如:

java -jar junit-platform-console-standalone-1.6.2.jar --class-path 'target/test-classes' -c your.package.YourTest

如果您不使用 Maven 並且仍希望使用帶有 --class --class-path. 然后確保您的.class文件在那里。 例如,使用javac MyJavaTest.java來編譯它們(如果沒有 Maven/Gradle 有點麻煩,因為您必須將所有庫都包含到編譯步驟中)。

有關更多信息和實際示例,請考慮遵循本教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM