Когда целесообразно использовать end to end тесты с учетом их влияния на скорость CI

Ответ

E2E-тесты стоит использовать для проверки критических пользовательских сценариев, где важно взаимодействие между компонентами системы. Они медленные и хрупкие, поэтому:

  1. Основные сценарии: логин, оформление заказа, ключевые переходы
  2. Не заменяют unit/integration тесты - только дополняют их
  3. Минимум тестов - 5-10 ключевых сценариев обычно достаточно
  4. Запускать реже - не на каждый коммит, а перед релизом или ночью

Пример Cypress теста:

describe('Checkout flow', () => {
  it('should complete purchase', () => {
    cy.login()
    cy.addToCart()
    cy.checkout()
    cy.contains('Order confirmed').should('be.visible')
  })
})

Лучше запускать их параллельно в CI и использовать стабильные тестовые данные.