Свойства каратэ. json выдает ReferenceError при чтении свойств в файле * .feature - PullRequest
1 голос
/ 05 марта 2020

Недавно обновив каратэ с 0.6.2 до 0.9.5, у меня было несколько ReferenceError со свойствами. json Я использовал во всех своих тестах.

У меня есть следующие setup:

test-properties. json

{
    "headers": {
        "x-client-ip": "192.168.3.1",
        "x-forwarded-for": "192.168.3.1"
    }
}

test-auth.feature

  Background:
      * def props = read('properties/test-properties.json')

Затем я использую props далее в моем первом сценарии :

And header User-Agent = props.headers.Accept-Language
And header X-Forwarded-For = props.headers.x-forwarded-for

Однако, при запуске этого я получаю следующую проблему:

com.intuit.karate.exception.KarateException: test-auth.feature:14 - javascript evaluation failed: props.headers.Accept-Language, ReferenceError: "Language" is not defined in <eval> at line number 1

Я пытался добавить файл свойств в тот же пакет, что и test-auth.feature, но безрезультатно , Кажется, проблема связана с чтением файла json. Я знаю, что Карате 0.6.2 может оценить тип файла и проанализировать его внутренне в его родном формате. Это все еще так? Если нет, то каково решение для чтения из свойств. json в каратэ 0.9.5.

1 Ответ

0 голосов
/ 05 марта 2020

Ничего не должно было измениться, когда дело доходит до чтения JSON файлов. Каратэ оценивает RHS как JS, поэтому я думаю, что это решение:

And header User-Agent = props.headers['Accept-Language']
And header X-Forwarded-For = props.headers['x-forwarded-for']

РЕДАКТИРОВАТЬ: это работает для меня:

* def props = { headers: { 'Accept-Language': 'foo', 'x-forwarded-for': 'bar' } }
* url 'http://httpbin.org/headers'
* header User-Agent = props.headers['Accept-Language']
* header X-Forwarded-For = props.headers['x-forwarded-for']
* method get

В результате:

1 > GET http://httpbin.org/headers
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Host: httpbin.org
1 > User-Agent: foo
1 > X-Forwarded-For: bar

Так что, если вы все еще застряли, пожалуйста, следуйте этому процессу: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...