我尝试使用带有独立运行程序的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 ]
答案 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)?