通过maven surefirereport在单个文件中以摘要格式在单元测试类中执行测试的java时间
有人能告诉我如何通过maven-surefire
在单个文件中获得单元测试类中每个单元测试所花费的时间吗?我已经看到了我的target/surefire-report
,它有每个测试的文件。基本上,我要找的是一个包含所有执行时间摘要的文件。如果可能,还可以根据每个测试的执行时间对结果进行排序
我使用的是maven 3.5&;MacOSX 10.12.6上的surefire插件2.4.2
# 1 楼答案
我用Martin Höller的片段编写了一个小的bash脚本,可能会对某人有所帮助:
# 2 楼答案
您可以使用surefire-report-plugin来聚合结果(但它仍然不会被排序)
或者
如果您已经使用surefire插件构建了项目
这将生成surefire报告。html在根目标目录中,您可以在其中找到每个模块和每个测试套件的时间统计信息
# 3 楼答案
目前
maven-surefire-plugin
不允许您这样做。它将所有结果写入单独的文件中。如果你觉得这是一个缺少的特性,你可以在它的issue tracker中创建一个特性请求但是,您可以使用一些Linux命令将输出转换为所需。以下是一些命令,它们可以将单独的XML文件转换为一个看起来像您想要的文件:
更新:数字排序存在分数变化的问题 数字。使用下面的
awk
版本来解决这个问题同样的事情也可以在
awk
稍微短一点、不那么神秘的情况下完成:生成surefire报告后,必须从maven项目的顶层目录执行这些命令
如果您有多模块项目,请使用以下选项:
结果文件为
output.txt
,包含以下格式的行:结果按消耗的时间排序