JUnit找不到带有--select-directory的文件夹中的类

时间:2019-12-29 18:08:28

标签: junit junit5 junit-runner

我尝试使用带有独立运行程序的junit5运行以下命令: java -jar ex1 / lib / junit-platform-console-standalone-1.6.0-M1.jar --select-directory =“ ./ ex1 / test”

具有以下层次结构:

*/5 * * * *

不幸的是,似乎Junit启动器没有发现测试。

.
├── ex1
│   ├── lib
│   │   ├── apiguardian-api-1.1.0.jar
│   │   ├── junit-jupiter-api-5.6.0-M1.jar
│   │   ├── junit-platform-commons-1.6.0-M1.jar
│   │   ├── junit-platform-console-standalone-1.6.0-M1.jar
│   │   └── opentest4j-1.2.0.jar
│   ├── mavnat.iml
│   ├── out
│   │   ├── production
│   │   │   └── mavnat
│   │   │       ├── AVLTree$AVLNode.class
│   │   │       ├── AVLTree.class
│   │   │       ├── AVLTree$DeletionBalancer.class
│   │   │       ├── AVLTree$IAVLNode.class
│   │   │       ├── AVLTree$InsertionBalancer.class
│   │   │       ├── AVLTree$Rotations.class
│   │   │       └── TreePrinter.class
│   │   └── test
│   │       └── mavnat
│   │           ├── ActualAVLTree.class
│   │           ├── ActualAVLTree$IAVLNode.class
│   │           ├── AVLSanitizer.class
│   │           ├── AVLTreeTest.class
│   │           ├── AVLTreeTestExternal.class
│   │           ├── DeletionTest.class
│   │           ├── ExTester$10.class
│   │           ├── ExTester$11.class
│   │           ├── ExTester$12.class
│   │           ├── ExTester$13.class
│   │           ├── ExTester$14.class
│   │           ├── ExTester$1.class
│   │           ├── ExTester$2.class
│   │           ├── ExTester$3.class
│   │           ├── ExTester$4.class
│   │           ├── ExTester$5.class
│   │           ├── ExTester$6.class
│   │           ├── ExTester$7.class
│   │           ├── ExTester$8.class
│   │           ├── ExTester$9.class
│   │           ├── ExTester.class
│   │           ├── InsertionTest.class
│   │           ├── META-INF
│   │           │   └── mavnat.kotlin_module
│   │           ├── RotationsTest.class
│   │           ├── SplitTest.class
│   │           ├── SuccessStatus.class
│   │           ├── TesterUtils.class
│   │           ├── Tests.class
│   │           └── TestUtils.class
│   ├── pro-1.docx
│   ├── src
│   │   ├── AVLTree.java
│   │   └── TreePrinter.java
│   └── test
│       ├── AVLSanitizer.java
│       ├── AVLTreeTestExternal.java
│       ├── AVLTreeTest.java
│       ├── DeletionTest.java
│       ├── InsertionTest.java
│       ├── JoinTest.java
│       ├── RotationsTest.java
│       ├── SplitTest.java
│       └── TestUtils.java
└── ex2 

有人知道为什么找不到测试吗? 我希望所有测试都能运行,并获得有关失败测试的信息。

编辑:详细运行:

╷
├─ JUnit Jupiter ✔
└─ JUnit Vintage ✔

Test run finished after 29 ms
[         2 containers found      ]
[         0 containers skipped    ]
[         2 containers started    ]
[         0 containers aborted    ]
[         2 containers successful ]
[         0 containers failed     ]
[         0 tests found           ]
[         0 tests skipped         ]
[         0 tests started         ]
[         0 tests aborted         ]
[         0 tests successful      ]
[         0 tests failed          ]

1 个答案:

答案 0 :(得分:2)

JUnit Jupiter(附带“ JUnit 5”)和JUnit Vintage(执行“ JUnit 3 + 4”测试)不支持JUnit Platform(“ JUnit 5”的一部分)提供的--select-directory选项。 。这两个引擎仅支持基于类的测试选择,这意味着在运行时测试类必须在类或模块路径上可用。

使用目录树中的路径,此独立命令应该有效:

java
  -jar junit-platform-console-standalone-${VERSION}.jar
  --class-path ex1/out/test
  --class-path ex1/out/production
  --scan-class-path

假设您在IntelliJ IDEA中编译了所有源。以下提示了如何在命令行上编译生产/测试源:How to launch JUnit 5 (Platform) from the command line (without Maven/Gradle)?