Файл функции теста каратэ не обрабатывает объединение строк для вызова функции JSJavascript

Форум по Javascript
Anonymous
Файл функции теста каратэ не обрабатывает объединение строк для вызова функции JS

Сообщение Anonymous »

У меня есть файл функции теста каратэ, как показано ниже, и я выполняю объединение строк в первом столбце примеров сценариев. Это отлично работает во всех моих других файлах функций.
Но когда я пытаюсь передать URL-адрес объединенной строки в функцию JS, происходит сбой, она всегда передает литералы.
Значения Page и AssetType прекрасно передаются в Javascript, а вот объединенный URL-адрес — нет.
Я уже пробовал различные подходы, например передача concatUrl напрямую, с использованием явного определения объединенной строки, с использованием функции URL-адреса Karate.get, никакой разницы.
Кажется, конкатенация не оценивается до вызова функции JS?
Как передать значение concatUrl в функцию check_hashes.js?

Код: Выделить всё

Feature: Asset Hash Validation

Background:
* def envConfig = karate.read('classpath:envs.json')[karate.env]
* def baseUrl = envConfig['base_domain']
* def basePort = envConfig['base_port']

Scenario Outline: JS and CSS assets have hashes in their URLs
Given url 
Given path
* def fullUrl = karate.get('url')
* def params = { url: , path: , assetType:  }
* def noHashCount = call read('check_hashes.js') params
When method get
Then status 200
And match noHashCount == 0

Examples:
| concatUrl        | Page       | AssetType |
| baseUrl + 'fr' + basePort  | '/fr/home' | 'css'       |
| baseUrl + 'fr' + basePort  | '/fr/home' | 'js'        |
| baseUrl + 'com' + basePort | '/en/home' | 'all'       |
Примечание: base_domain будет иметь вид «http://www.example.», а base_port — что-то вроде «:8080». Я хочу иметь возможность обрабатывать несколько доменов верхнего уровня в своих тестах, а также иметь разные порты для разных сред и т. д.


Подробнее здесь: https://stackoverflow.com/questions/797 ... unction-ca

Вернуться в «Javascript»