Как сделать e2e тестирование используя GitHub action?

E2E тестирование (End-to-End) является важным аспектом разработки приложений, особенно при использовании фреймворка Angular, чтобы обеспечить, что все компоненты и функциональности правильно работают вместе. GitHub Actions, с другой стороны, предоставляет набор инструментов для автоматизации рабочих процессов разработки, включая выполнение тестов.

Для настройки E2E тестирования с использованием GitHub Actions в Angular, вам потребуется выполнить следующие шаги:

1. Создайте репозиторий на GitHub для вашего проекта Angular, если у вас его еще нет.

2. Установите и настройте Chromedriver, инструмент для запуска тестов в браузере Chrome. Вы можете добавить этот шаг в файл "package.json" вашего проекта:

"scripts": {
  "pretest": "webdriver-manager update"
}

3. Создайте файл конфигурации для E2E тестов в каталоге "e2e" вашего проекта. Например, назовите его "protractor.conf.js". Приведу пример простейшей конфигурации:

const { SpecReporter } = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

4. Добавьте в ваш репозиторий файл для настройки исполнения GitHub Actions, например, ".github/workflows/e2e-tests.yml". Приведу ниже пример такого файла:

name: E2E Tests

on:
  push:
    branches:
      - main

jobs:
  e2e-tests:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: 14

    - name: Install dependencies
      run: npm install

    - name: Run E2E tests
      run: npm run e2e

5. Закоммитьте и запушьте все изменения в ваш репозиторий на GitHub.

Теперь, при каждом пуше в ветку "main" вашего репозитория, GitHub Actions будет автоматически запускать E2E тесты. Весь процесс будет выполняться в виртуальной машине с операционной системой Ubuntu. GitHub Actions выполняет следующие шаги:
- Клонирует репозиторий.
- Устанавливает требуемую версию Node.js.
- Устанавливает все зависимости проекта.
- Запускает E2E тесты с помощью команды "npm run e2e".

Таким образом, GitHub Actions позволяет легко настроить выполнение E2E тестов при каждом пуше в ваш репозиторий на GitHub с использованием фреймворка Angular. Это помогает обеспечить непрерывную интеграцию и уверенность в работоспособности вашего приложения.