java - JUnit 4 中人类可读的测试名称

标签 java unit-testing junit junit4

如何使用 JUnit 4 指定人类可读的测试名称(显示在 IDE 和测试报告中)?

理想情况下,通过自动转换实际测试名称。

最佳答案

我想“人类可读的名称”主要是指带有空格的测试名称。

下划线

对于这个问题,我最喜欢的解决方案是使用下划线而不是空格。这是唯一可以与 IDE 很好地配合使用的解决方案。例如。您可以通过单击鼠标从测试执行面板跳转到测试。

@Test
public void the_server_accepts_connections_with_password() {
    ...
}

看看FakeSftpServerRuleTest对于使用此样式的完整测试类。

测试运行器

还有其他解决方案,但所有这些都需要您自己编写 Runner .

您可以构建一个支持类似于 JUnit Jupiter 的 @DisplayName 的 Runner注解。

您可以构建一个 Runner,将测试方法名称的下划线转换为测试显示名称的空格。

这些解决方案的问题在于 IDE 无法再将测试结果与测试方法相关联。

非标准空间

警告:不要这样做!

只是为了完整性。有various space characters in Unicode其中一些可以是 Java 中方法名称的一部分。您可以使用它们编写测试名称。您仍然有适当的 IDE 支持。尽管如此:不要这样做。代码的读者不会意识到这种魔力而变得绝望。

关于java - JUnit 4 中人类可读的测试名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516347/

相关文章:

Java:如何修复挂起的线程?

unit-testing - Spock - 使用不同的系统默认值重复测试

unit-testing - 如何在没有模拟的情况下记录/验证单元测试中的方法调用?

unit-testing - 如何从mstest命令行在播放列表文件中运行测试

spring - 如何从实体管理器访问 Hibernate 统计信息?

java - JUnit4 使用测试套件运行特定包中的所有测试

java - 如何将数组的内容设置为等于第二个数组的内容

java - 搭建netty开发环境

java - 迭代时向 HashSet 添加元素

java - 使用Arquillian进行测试,如何共享Arquillian.xml?