Использование токена доступа TFS в тестах specflow - PullRequest
0 голосов
/ 17 декабря 2018

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

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

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

  • Адаптер модульного тестирования не смог подключиться к источнику данных или прочитать данные.Дополнительные сведения об устранении неполадок, связанных с этой ошибкой, см. В разделе «Устранение неполадок в модульных тестах, управляемых данными» (http://go.microsoft.com/fwlink/?LinkId=62412) в библиотеке MSDN. Сведения об ошибке: невозможно найти запрошенный поставщик данных .Net Framework. Возможно, он не установлен. *

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

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

BR

1 Ответ

0 голосов
/ 10 января 2019

Как правило, вы можете использовать персональные токены доступа (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.)

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