【问题标题】:How can I get Karate logs printed in the report?如何在报告中打印空手道日志?
【发布时间】:2020-03-15 14:05:32
【问题描述】:

我有

<logger name="com.intuit.karate" level="DEBUG"/>

在我的 logback-test.xml 中。但是当我运行我的测试时,我看到当步骤

* assert SchemaUtils.isValid(response, schema)

失败,我在 Cucumber 报告中看不到任何调试信息(包含有效负载和关于哪个字段丢失或哪个值错误的描述),例如:

error: object instance has properties which are not allowed by the schema: ["PrSKU"]
        level: "error"

我确实在控制台中看到了它:

{content_type=, value=21:54:25.380 assertion failed: assert evaluated to false: SchemaUtils.isValid(response, schema)21:54:25.413

如何在报告中打印日志?

我找到了如何访问以前的请求/响应并将其打印在报告中:

// setup global hook to log details only on failed scenarios
    karate.configure('afterScenario', function(){
        var info = karate.info;
        if(info.errorMessage) {
            karate.log('failed',info.scenarioType+':',info.scenarioName);
            var r = karate.prevRequest;
            if(r) {
                var log = 'request: ' + r.method + ' ' + r.uri + '\n' + karate.pretty(r.headers)
                if(r.body) log += '\n' + karate.pretty(r.body)
                karate.log(log);
                karate.log('response: ' + karate.pretty(response));
            }
        }
    })

但是我没有找到如何访问空手道日志然后在报告中打印它们的方法。

【问题讨论】:

    标签: java karate


    【解决方案1】:

    由于SchemaUtils.isValid(response, schema) 似乎是自定义Java 代码,我认为如果您抛出任何Exception 错误消息将由空手道打印并且应该出现在日志和HTML 报告中。如果没有,则可能是错误 - 所以请按照以下流程操作:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

    【讨论】:

    • 谢谢彼得 是的,抛出异常有效并且消息出现在报告中。我正在尝试寻找另一种方法来做到这一点,而不会因异常而导致测试失败。
    • @EvgenyTkachenko 是不是很简单。返回具有 2 个条目的 Map - 一个布尔值 result 和一个字符串 message。然后只需使用print
    • 谢谢 这就是我要选择的选项。我希望有办法将 Java 中的所有日志或错误日志发布到 katate cucumber 报告中
    • @EvgenyTkachenko 如果您不介意导入 com.intuit.karate.Logger 也可以查看:stackoverflow.com/a/57079152/143475
    • 导入 com.intuit.karate.Logger; private static final Logger LOGGER = new Logger(); LOGGER.info("1!!!!!!!!!!!!!!!!!!!!!"); @Peter 这有助于登录控制台或文件,但不能登录 Cucumber 报告感谢您帮助我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多