Как получить данные из appsettings.json при выполнении теста Nunit в конвейере bitbucket

#c# #json #automated-tests #nunit #bitbucket-pipelines

#c# #json #автоматизированные тесты #nunit #bitbucket-конвейеры

Вопрос:

У меня есть платформа автоматизации тестирования для тестирования API с приведенной ниже структурой: структура

В файле appsettings.json я сохраняю любые данные для тестов: введите описание изображения здесь
введите описание изображения здесь

Я извлекаю данные из appsettings.json с помощью класса ConfigManager: введите описание изображения здесь

Когда я выполняю свой тест на своем локальном компьютере, все в порядке, но когда я пытаюсь выполнить его в конвейере bitbucket, я получаю исключение NullReferenceException (при попытке использовать переменную форму ConfigManager (например, baseUrl)). Вот мой файл .yaml: введите описание изображения здесь

Если требуемые данные жестко запрограммированы: введите описание изображения здесьтест передается при запуске конвейера. Поэтому я считаю, что проблема как раз в правильности извлечения данных из файла json.

Мой вопрос: что-то не так в моем коде? Должен ли я добавить что-либо в файл yaml, чтобы иметь возможность получать данные из appsettings.json? Любая помощь была бы ценной.

Комментарии:

1. Как выполнить тест локально?

2. Можете ли вы проверить, является ли appsettings.json версионным и присутствует ли в результате сборки на CI?

3. Поскольку вы зависите от текущего каталога, добавьте тест, чтобы проверить, присутствует ли файл в текущем каталоге при запуске под CI.

4. @Vernou — локально я запускаю с помощью Visual Studio (Test Explorer — Run)

5. @Charlie — Я добавил простые тесты ‘ [Test] public void CheckFile() { var info = new DirectoryInfo(Каталог. GetCurrentDirectory()); info.GetFiles(«appsettings.json»). Should().HaveCount(1); }’ передается на CI

Ответ №1:

Проблема решена. В «Основной» части моего TAF я использовал неправильный путь к файлу json для настройки «FlurlHttp.GlobalSettings.Значение «Тайм-аут». Вместо использования класса ConfigManager я использовал новую конфигурацию, поэтому значение таймаута не было найдено. Я обновил свой ConfigManagerвведите описание изображения здесь, и теперь все работает нормально в bitbucket CI