Мы используем каратэ 0.9.5. Мы хотели бы создать динамический набросок сценария c, используя условные логики c. Мы хотели бы получить города для списка регионов, и это для списка стран. Условная логика c используется только в поисках городов. Что мы сделали:
Main.feature:
Scenario Outline:
* def countries = call read('GetRegionsWithTowns.feature') { countryId: '#(<id>)' }
Examples:
|countriesList|
GetRegionsWithTowns.feature:
Scenario:
* def fun =
"""
function(regions) {
for (i = 0; i < regions.length; i++) {
var region = regions[i];
if(region['name'] && region['name'].contains('alabama')){
karate.log('***smth');
}
else{
var regionId = region['region_id'];
karate.call('GetTowns.feature', [regionId]);
}
}
}
"""
* def regions = call read('GetRegions.feature') { countryId: '#(countryId)' }
* def result = call fun(regions)
GetRegions.feature
Scenario:
Given url 'someurl'
And path countryId, 'regions'
When method get
Then status 200
GetTowns.feature
Scenario:
Given url 'someurl'
And path regionId, 'towns'
When method get
Then status 200
Ошибка
GetTowns.feature:16 (the line with "And path regionId, 'towns'") - javascript evaluation failed: regionId, ReferenceError: "regionId" is not defined in <eval> at line number 1
Мы не можем понять, что мы делаем неправильно? Любая помощь приветствуется, спасибо