Как можно распечатать журналы каратэ в отчете? - PullRequest
1 голос
/ 15 марта 2020

У меня

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

в моем лог-тесте. 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));
            }
        }
    })

Но я не нашел способа получить доступ к журналам каратэ и затем распечатать их в отчете.

1 Ответ

1 голос
/ 15 марта 2020

Поскольку SchemaUtils.isValid(response, schema) кажется пользовательским Java кодом, я думаю, что если вы выбросите любой Exception, сообщение об ошибке будет напечатано каратэ и должно появиться в журнале, а также в отчете HTML. Если это не так, это может быть ошибка - поэтому, пожалуйста, следуйте этому процессу: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

...