Cypress uruchamianie testów na Githubie – to wpis pokazujący w jaki sposób w kilku krótkich krokach dokonać integracji i uruchamiać testy Cypressa na Githubie. Jeżeli jesteś zainteresowany innymi wpisami dotyczącymi Cypressa, zapraszamy do odpowiedniego działu.
Wprowadzenie
Tworząc testy automatyczne z wykorzystaniem Cypressa, bardzo ważnym aspektem jest aby wykorzystywać nasze testy w codziennej pracy. Jaki sens jest jednak tworzyć testy automatyczne a później uruchamiać je tylko w środowisku lokalnym? Oczywiście stworzone testy pomogą szybciej sprawdzić czy nie mamy do czynienia z regresją, natomiast winniśmy zmierzać w kierunku tworzenia testów i uruchamiania ich w naszym środowisku w sposób automatyczny.
Tworzenie pliku *.yml
Chcąc uruchamiać testy z poziomu Githuba nasze testy będą opierać się o stworzenie pliku *.yml, który będzie naszym centrum dowodzenia i zarządzania. Do uruchomienia naszych testów konieczne będzie:
- runner na Githubie, na podstawie którego testy będą uruchamiane (pytaj Devopsów o tag)
- obraz dockerowy cypressa – dostępne na dockerhub.com
I. Gotowy skrypt
W naszym projekcie testowym tworzymy plik *.yml, a następnie uzupełniamy go
name: Smoke Tests
on:
workflow_dispatch:
push:
jobs:
cypress-run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- spec: "cypress/e2e/API/**/*"
browser: "electron"
- spec: "cypress/e2e/**/*"
browser: "chrome"
container:
image: cypress/browsers
options: --user 1001
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set Safe Spec Name
run: echo "SAFE_SPEC_NAME=$(echo '${{ matrix.spec }}' | sed 's/[^a-zA-Z0-9._-]/_/g')" >> $GITHUB_ENV
- name: Install Dependencies
run: npm install
- name: Delay Before Tests
run: sleep ${{ matrix.delay }}
- name: Run Cypress Tests
run: npx cypress run --spec "${{ matrix.spec }}" --browser ${{ matrix.browser }}
- name: Archive Test Report
uses: actions/upload-artifact@v4
if: always()
with:
name: cypress-reports-${{ matrix.browser }}-${{ env.SAFE_SPEC_NAME }}-${{ github.run_id }}
path: cypress/report/
retention-days: 14
- name: Archive Screenshots
uses: actions/upload-artifact@v4
if: always()
with:
name: cypress-screenshots-${{ matrix.browser }}-${{ env.SAFE_SPEC_NAME }}-${{ github.run_id }}
path: cypress/screenshots
retention-days: 14
- name: Archive Videos
uses: actions/upload-artifact@v4
if: always()
with:
name: cypress-videos-${{ matrix.browser }}-${{ env.SAFE_SPEC_NAME }}-${{ github.run_id }}
path: cypress/videos
retention-days: 14
Co tam jest
W ramach opisanego flow mamy możliwość uruchomienia testów – wg. katalogów które mamy w strukturze.
Wskazaliśmy też możliwe przeglądarki do wyboru.
Dodaliśmy też flagę
options: --user 1001
Podsumowanie
Cypress uruchamianie testów na Githubie – to kolejny wpis mający zachęcić Was do instalacji i sprawdzenia narzędzia. Z racji popularyzacji narzędzia i dużego wsparcia które otrzymał Cypress na rozwój, będziemy poszerzać wpisy na ten temat. Wszelkie artykuły związane z Cypress IO znajdziecie w dedykowanym dziale.