Как запустить тестовые примеры Specflow в конвейере Gitlab для реализации CI/CD

# #continuous-integration #gitlab-ci #gitlab-ci-runner #cicd #gitlab-ci.yml

#gitlab #непрерывная интеграция #gitlab-ci #cicd #gitlab-ci.yml

Вопрос:

Я хочу реализовать CI/CD, чтобы всякий раз, когда команда разработчиков вносит какие-либо изменения в свою сборку, весь мой пакет автоматизации запускался перед сборкой и развертыванием.

У меня есть файл yml в GitLab и сценарии автоматизированных тестовых примеров в Visual Studio (платформа Specflow на C#).

Пожалуйста, найдите ниже файл yml:

 demo_job_1:  stage: test  tags:  - win  script:   - echo "Test 1 started"  - '"C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7IDEExtensionsTestPlatformvstest.console.exe /ProjName.dll"'  - '"C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7IDEMSTest /testcontainer:D:UsersusernamesourcereposProjectProjNamebinDebugnetcoreapp3.1ProjName.dll"'  - "D:UsersusernamesourcereposProjectProjNameProjName.slnTestTestFeature1.csproj"'  

Но моя работа проходит без фактического выполнения каких-либо тестовых примеров из проекта

Структура папок в Visual studio: введите описание изображения здесь

Я пытался внести много изменений в путь, но ни одно не сработало. Я вступаю на неверный путь? Кто-нибудь может, пожалуйста, помочь мне с этим? Если файл yml полностью неверен, то может ли кто-нибудь, пожалуйста, помочь мне в том же? Заранее спасибо!!! 🙂

P. S: Я проверил yml перед его фиксацией, и ymlvalidator показал его как правильный файл yml.

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

1. Кто-нибудь может, пожалуйста, помочь мне с этим?

2. Привет, в твоем скрипте я вижу путь «C:». Файл, который вы хотите выполнить, должен находиться в репозитории git. А чтобы иметь контекст Visual Studio, вам необходимо указать связанное изображение

3. Спасибо @Jean-Phi Baconnais за то, что направили меня. После долгих поисков я наконец нашел решение, которое публикую ниже

Ответ №1:

 demo_job_1:  stage: test   tags:  - tags      script:  - Root dir location path  - 'dotnet restore lt;path to the ProjName.slngt;'  - 'dotnet msbuild lt;path to the ProjName.slngt;'  - 'dotnet test lt;path to the ProjName.slngt;'  

Надеюсь, это поможет и другим тоже!!!