Установить URL для всех функций - PullRequest
1 голос
/ 08 июля 2019

Мой вопрос очень похож на этот , но принятый ответ не соответствует моему целевому использованию:

Я хотел бы установить url раз и навсегда в файле initialize.feature и никогда больше не устанавливать его впоследствии. Другими словами, я не хочу загромождать все файлы объектов одним и тем же следующим утверждением:

* url baseUrl

Мое baseUrl значение установлено на основе karate.env, например, https://localhost для local среды и http://prod.env.com для prod. Это не меняет.

path изменится в наших файлах объектов, потому что мы тестируем разные конечные точки.

Я попробовал следующую настройку:

  • in karate-config.js:
config.baseUrl = 'https://localhost';
// ... code changing config.baseUrl based on karate.env == 'prod' or not
var result = karate.callSingle('classpath:utility/initialize.feature', config);
  • in initialize.feature:
@ignore
Feature:

  Scenario: Initialize
      * print baseUrl
      * url baseUrl

Мы видим, что baseUrl правильно печатается при выполнении файла initialize.feature.

Но в любой выполняемой функции впоследствии я получаю следующую ошибку:

some-test.feature:24 - url not set, please refer to the keyword documentation for 'url'

Можно ли установить url только в моем файле initialize.feature, и никогда после этого?

Спасибо.

1 Ответ

1 голос
/ 08 июля 2019

Нет, вы не можете. Вам нужно будет сделать * url baseUrl как минимум один раз в каждом файле функций. Для этого есть несколько причин - удобочитаемость и удобство сопровождения, и если вы посмотрите на «пример hello world» - обратите внимание, как вы можете опустить url во втором вызове, потому что вы следуете за REST полные узоры.

Поскольку вы можете сделать * url baseUrl в Background: и иметь все остальные Scenario -s наследования - это обычно нормально на практике, и в реальном тестировании API мы видим, что вам действительно нужно переключить URL- s в тесте (например, для аутентификации). Если вы очень сильно к этому относитесь - вы можете рассмотреть pull-запрос. Впервые за 2,5 года кто-то когда-либо запрашивал это.

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