Мы используем SpecFlow для выполнения «процессных» тестов без прохождения уровня пользовательского интерфейса. Наши тестовые артефакты используют сгенерированный клиент OpenApi (сгенерированный NSwag с использованием наших swagger-файлов) и вызывают реальные API. Я немного переживаю, где в конвейере devops мне нужно поместить это, мы используем PR для объединения функций в master, наше решение в одном репо. Итак:
- Куда мы помещаем решение для потока операций. Размещаем ли мы это в том же репо, что и бэкэнд-решение?
- Когда мы должны генерировать новых клиентов OpenAPI? Нужно ли делать это лучше всего при объединении сборки из функции в мастер? Затем мы регистрируем новый сгенерированный клиентский код в том же репо, что может инициировать другую сборку?
- Тесты выполняются в промежуточной среде со всеми зависимостями. Мы не можем легко (автоматизировать, космос БД) восстановить, поэтому наши тесты полностью изолированы. Должны ли мы запускать наши тесты как отдельный этап в нашем конвейере развертывания? До, во время или после стадии подготовки к выпуску?
В общем, мы немного боремся с лучшими практиками, мы используем Azure Devops для нашего жизненного цикла разработки, поэтому ищем некоторые правила!