У меня есть SPA и REST Api в одном репозитории в разных .csproj. Когда я хочу отладить приложение, мне нужно вручную запустить SPA и Rest API с помощью команды do tnet run (или IIS Express в VS). Даже если кодовая база полностью изолирована между веб-приложением и api, нет необходимости разделять репозиторий. Потому что, даже если они находятся на совершенно другой кодовой базе, интерфейс вряд ли привязан к API.
SPA и API локально размещены в разных доменах:
- A vue. js. Net Core SPA размещен на https://localhost: 5000 (в рабочей среде app.mysite.com)
- A. Net Core 3.1 API Остальное размещено на https://localhost: 5001 (в производстве api.mysite.com)
Теперь я хотел бы запустить автоматические c сквозные тесты в WebApp, используя любую среду тестирования e2e (возможно, TestCafe или что-то еще. ..). Для автоматизации тестов перед развертыванием я использую Azure Devops CI.
Вот мой текущий процесс CI:
Сборка
- Сборка проекта API
- Модульный тест проекта API
- Сборка проекта WebApp
- Модульный тест проекта WebApp
- Упаковка в артефакты как API, так и WebApp
Выпуск (стадия) - Автоматически c после сборки
- Выполнение миграции базы данных и т. Д. c ...
- Publi sh API и веб-приложение для промежуточной Azure Приложение Сервис
Выпуск (Производство) (Вручную)
- Выполнение миграции базы данных и т.д. c ...
- Publi sh API и WebApp в производство Azure Служба приложений
Я настроил API следующим образом, чтобы он использовал поддельную базу данных для целей тестирования в среде «Тест»:
if (Environment.IsTest())
{
var serviceProvider = new InMemoryDatabaseRoot();
services.AddDbContext<MyDbContext>(options => options.UseInMemoryDatabase("MyDb", serviceProvider));
}
Теперь я хотел бы знать, существует ли одна команда npm для запуска веб-приложения и API бок о бок в тестовой среде и когда оба сервера готовы, запускаем тесты e2e. В каждой документации по фреймворкам e2e tests я не нашел способа добиться этого. В большинстве случаев тесты выполняются только в веб-приложении.