JUnit 5 ConsoleLauncher 不工作
JUnit 5 ConsoleLauncher doesn't work
我有一个 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() {
}
}
然后我将它编译成.class文件使用
javac -cp .:junit-platform-console-standalone-1.0.0.jar DisplayNameDemo.java
这条命令执行成功,得到一个DisplayNameDemo.class文件
在那之后,我运行一个如下所示的命令
java -jar junit-platform-console-standalone-1.0.0.jar --select-class DisplayNameDemo.class
但是失败了,说"org.junit.platform.commons.util.PreconditionViolationException: Could not load class with name: DisplayNameDemo.class"
请帮帮我,非常感谢!
您必须在 --select-class
中使用完全限定的 class 名称。此外,它需要在 class 路径上。默认情况下,它只会包含以 Test
或 Tests
结尾的 class,因此您必须使用 --include-classname
来禁用或更改过滤器。
java -jar junit-platform-console-standalone-1.1.0.jar \
--classpath build/classes/java/test \
--select-class example.DisplayNameDemo \
--include-classname '.*'
我有一个 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() {
}
}
然后我将它编译成.class文件使用
javac -cp .:junit-platform-console-standalone-1.0.0.jar DisplayNameDemo.java
这条命令执行成功,得到一个DisplayNameDemo.class文件
在那之后,我运行一个如下所示的命令
java -jar junit-platform-console-standalone-1.0.0.jar --select-class DisplayNameDemo.class
但是失败了,说"org.junit.platform.commons.util.PreconditionViolationException: Could not load class with name: DisplayNameDemo.class"
请帮帮我,非常感谢!
您必须在 --select-class
中使用完全限定的 class 名称。此外,它需要在 class 路径上。默认情况下,它只会包含以 Test
或 Tests
结尾的 class,因此您必须使用 --include-classname
来禁用或更改过滤器。
java -jar junit-platform-console-standalone-1.1.0.jar \
--classpath build/classes/java/test \
--select-class example.DisplayNameDemo \
--include-classname '.*'