我们应该以管理层定义的格式为所有测试提供测试证据。 不接受默认的surefire报告,因为它们过于技术性并且缺少一些所需的信息。
尤其是测试应写入文件 -其标题 -所有步骤 -所有检查 -总体结果
有人知道这个的现有解决方案吗?
我通过扩展现有的Rule TestWatcher并覆盖rsp failed的开始,完成和成功方法来设法完成了大多数工作。
这非常有用,因为它在背面透明地发生,并且不会在测试代码中添加多余的行。
但是,在任何断言报告检查之前,我没有找到一种方法可以上钩。 (我认为我必须在方法调用之前挂入钩子,因为我猜在执行后,如果失败了,就无法再报告检查了)
我在TestWatcher扩展程序中编写了一个方法
public void logAssertionStep(String assertion, String actual, String expected) {
builder.append("Step "+assertion+": expected "+expected+" to actual "+actual+EOL);
}
导致
Step assertEquals: expected 5 to actual 5
但是,测试代码变得有点过载和丑陋。特别是您必须复制并重复断言方法...
int expectedResult = 5;
watchman.logAssertionStep("assertEquals", Integer.toString(expectedResult), Integer.toString(actual));
assertEquals(expectedResult, actual);
测试代码应保持不变,并保持尽可能简单
int expectedResult = 5;
assertEquals(expectedResult, actual);
我当时正在考虑使用AOP,但这会引入另一个依赖关系。 由于TestWatcher提供了几乎类似于Aspects的功能,所以junit框架中是否存在类似的可能性?