Использование токена доступа tfs в тестах specflow

Я прошу это просто для того, чтобы узнать, можно ли запустить тест specflow с использованием токена учетных данных пользователя для доступа к данным tfs (TestCase).

Контекст: у нас есть конвейер CI / CD для запуска более 19K тестов Specflow, синхронизированных с TFS с помощью specsync. Большинство наших тестов основаны на данных с использованием схемы сценария. В нашем конвейере управления выпусками мы настраиваем тестовые прогоны, которые будут выполняться на нескольких тестовых машинах. Но нам нужно кэшировать учетные данные пользователя в коллекцию / проект tfs на каждой машине, чтобы тесты могли собирать тестовые данные.

Проблема: много раз наш тест терпел неудачу с таким выводом:

  • # P4 #

Ошибка связана с тем, что учетные данные для доступа к tfs больше не подходят по таким причинам, как изменился пароль или пользователь больше не действителен и т. Д. Следовательно, нам необходимо подключиться к каждой машине (более 10) и сбросить учетные данные для доступа к tfs.

Требование: есть ли способ встроить токенизированные учетные данные tfs в тесты specflow (файлы функций) или в файл конфигурации, чтобы доступ к источнику данных был прозрачным для выполнения тестов?

BR


person TedOss    schedule 17.12.2018    source источник
comment
Итак, кто-нибудь может помочь с этим?   -  person TedOss    schedule 20.12.2018


Ответы (1)


Как правило, вы можете использовать токены личного доступа (PAT) для подключения к TFS (см. this для подробностей), но я не знаю, каким образом передать это для источника данных TestCase.

Поскольку в вашем случае метод тестирования создается с помощью SpecSync, вы можете настроить SpecSync для встраивания тестовых данных в сгенерированный метод вместо их получения из TFS.

В SpecSync v1. * Это можно сделать, указав параметр merged-examples для регистрации плагина SpecSync в файле App.config, например:

<add name="SpecSync.MTM" type="Generator" parameters="merged-examples" />

Начиная с SpecSync v2 (в настоящее время находится в состоянии предварительной версии), это будет поведение по умолчанию в любом случае, но вы можете изменить его в файле конфигурации specsync.json:

{
  ...
  "specFlow": {
    "scenarioOutlineAutomationWrappers": "iterateThroughExamples"
  },
  ...
}

(Здесь iterateThroughExamples использует встроенные тестовые данные (по умолчанию), а useTestCaseData получает данные из TFS.)

person Gaspar Nagy    schedule 10.01.2019
comment
Привет @Gaspar Nagy, немного поработав над другим проектом, я хочу оживить конвейер тестирования, но я все еще застрял с той же проблемой ... Итак, принимая ваш ответ, если я изменю параметры SpecSync, будет ли результаты тестов будут опубликованы и связаны с их тестовыми примерами в TFS? И будет ли MtmWrapper по-прежнему связующим звеном между тестовыми примерами и его методом тестирования? BR, ted - person TedOss; 11.04.2019