无法使用JUnit5控制台启动器运行测试

7
我正在尝试使用JUnit5控制台启动器运行简单测试。我尝试了几个选项,但都没有成功。有人可以告诉我出了什么问题吗? java -jar .\junit-platform-console-standalone-1.0.0-RC3.jar -c AFirstTest.class java -jar .\junit-platform-console-standalone-1.0.0-RC3.jar -c AFirstTest 会给我一个警告。
WARNUNG: TestEngine with ID 'junit-jupiter' failed to discover tests

我尝试运行目录中的所有测试,但似乎找不到该测试:

java -jar .\junit-platform-console-standalone-1.0.0-RC3.jar -d .

结果如下:

. +-- JUnit Jupiter [OK]
'-- JUnit Vintage [OK]

测试运行完成,耗时 11 毫秒 [ 找到 2 个容器 ]
[ 跳过 0 个容器 ] [ 启动了 2 个容器 ]
[ 中止了 0 个容器 ] [ 成功运行了 2 个容器 ]
[ 失败了 0 个容器 ] [ 找到 0 个测试 ]
[ 跳过 0 个测试 ] [ 启动了 0 个测试 ]
[ 中止了 0 个测试 ] [ 成功运行了 0 个测试 ]
[ 失败了 0 个测试 ]

我正在使用 Windows 10,在 IntelliJ 中成功运行了测试。

这是我的测试类:

import org.junit.jupiter.api.Test;
 
import static org.junit.jupiter.api.Assertions.assertEquals;
 
class AFirstTest {
 
    @Test
    void helloJUnit5() {
        assertEquals(2, 3 - 1);
    }

}

你在哪个目录下执行命令? AFirstTest位于哪个包中? - Sormuras
AFirstTest没有包。控制台启动器jar和AFirstTest.class在同一个目录中。添加了测试类。 - Anna
1个回答

6

您需要在类路径中包含当前目录。例如:

java -jar junit-platform-console-standalone-1.5.2.jar --class-path . -c AFirstTest

我认为它应该可以在不包含它的情况下运行。你能否在https://github.com/junit-team/junit5/issues上提出一份问题?


我猜 -jar 选项会从默认类路径中删除 .。因此,您必须手动添加它,如上所述。这也应该可以工作:java -cp .;junit-platform-console-standalone-1.0.0-RC3.jar org.junit.platform.console.ConsoleLauncher -c AFirstTest - Sormuras
--class-path . 就可以了!目前为止还好,谢谢。 :) 但是为什么使用目录选项时它不能发现类呢? - Anna
请看我在上面对此答案的评论。-jar将类路径的控制权传递给了jar。也许我们应该在其清单中包含. - Sormuras
1
java -jar .\junit-platform-console-standalone-1.0.0-RC3.jar --class-path . -d . 仍然无法执行任何测试。 - Anna
1
我也遇到了同样的问题,你已经找到解决这个问题的方法了吗? - MarcuX
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接