2017-08-24 153 views
1

我正尝试使用JUnit5控制台启动器运行简单测试。我尝试了几个选项,但它不起作用。有人可以告诉我哪里出了问题?无法使用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的木星[OK]
“ - JUnit的复古[OK]

试运行结束后11毫秒[找到2容器]
[0集装箱跳过] [2容器开始]
[0容器中止] [2容器成功]
[0容器失败] [0个试验]
[0测试跳过] [0试验开始]
[0试验š中止] [0试验成功]
[0测试失败]

我在Windows 10,我在从运行的IntelliJ测试是成功的。

这是我的测试类:

进口org.junit.jupiter.api.Test;

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

类AFirstTest {

@Test 
void helloJUnit5() { 
    assertEquals(2, 3 - 1); 
} 

}

+0

您在哪个目录下发出命令? “AFirstTest”驻留在哪个包中? – Sormuras

+0

AFirstTest没有包装。控制台启动器jar和AFirstTest.class位于相同的目录中。添加了测试类。 – Anna

回答

0

你必须包括在类路径中的当前目录。像:

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

它应该工作没有它包括它。我认为。你介意在https://github.com/junit-team/junit5/issues提出问题吗?

+0

我想,'-jar'选项会将'.'从默认类路径中移除。所以,你必须手动添加它,如上所述。这也应该工作: 'java -cp。; junit-platform-console-standalone-1.0.0-RC3.jar org。junit.platform.console.ConsoleLauncher -c AFirstTest' – Sormuras

+0

--class-path。诀窍!好吧,谢谢。 :)但为什么它没有发现与目录选项类? – Anna

+0

请参阅我上面对此答案的评论。 '-jar'将类路径的控制权传递给'jar'。也许,我们应该在其清单中包含'.'。 – Sormuras