#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