如何使用JUnit 4指定人类可读的测试名称(显示在集成开发环境和测试报告中)?
理想情况下,通过自动转换实际的测试名称。
发布于 2018-01-30 17:00:53
我认为“人类可读的名称”主要是指带有空格的测试名称。
下划线
对于这个问题,我最喜欢的解决方案是使用下划线而不是空格。这是唯一能与IDE很好地协同工作的解决方案。例如,只需单击一下鼠标,您就可以从测试执行面板跳转到测试。
@Test
public void the_server_accepts_connections_with_password() {
...
}
看看FakeSftpServerRuleTest中使用这种风格的完整测试类。
测试跑步者
还有其他解决方案,但它们都需要您编写自己的Runner。
您可以构建一个支持类似于JUnit Jupiter的@DisplayName注释的Runner。
您可以构建一个运行器,该运行器将下划线从测试方法的名称转换为测试显示名称的空格。
这些解决方案的问题在于,IDE无法再将测试结果与测试方法相关联。
非标准空间
警告:不要这样做!
只是为了完整性。在Java语言中有一些various space characters in Unicode,其中一些可以是方法名的一部分。您可以使用它们编写测试名称。您仍然拥有适当的IDE支持。尽管如此:不要这么做。代码的读者不会意识到这种魔力而变得绝望。
https://stackoverflow.com/questions/48516347
复制相似问题