Как запустить модульное тестирование в среде браузера?

Я пишу тест для некоторого кода, который манипулирует DOM, и я хотел запустить его в среде браузера, и я не знаю как.

Я написал тест макета с использованием библиотеки тестирования AVA для моей маленькой библиотеки https://github.com/marcofugaro/promisify-dom-selector:

const test = require('ava')
const promisifyDOMSelector = require('index.js')

test('pGetElementById works', t => {
  const pGetElementById = promisifyDOMSelector(document.getElementById)

  pGetElementById('load-later')
    .then((el) => {
      t.deepEqual(el, document.getElementById('load-later'))
    })

  const testEl = document.createElement('div')
  testEl.id = 'load-later'
  document.body.appendChild(testEl)
})

и хотел запустить его в Chrome без головы.

Я попытался настроить Karma с помощью плагина ava karma-ava, но он даже не работает, вот сообщение об ошибке:

Я бы не пошел с маршрутом Кармы, если это возможно, но я не знаю другого пути! Что я могу сделать?

2 ответа

Cypress недавно выпустил Cypress Component Testing . Это поддерживает основные фреймворки, такие как React и Vue. Тесты будут выполняться в безголовом браузере вместо jsdom в node env.

Если вам не нужно на самом деле тестировать в браузере, то рецепт тестирования браузера включает в себя несколько полезных указателей.

https://github.com/avajs/karma-ava не видел никакой работы более года, поэтому я не удивлен, если это не сработает.

Если вам нужно запустить ваш код в реальном браузере, я бы использовал http://www.nightmarejs.org/ или что-то с HTML-документом, которым вы можете управлять из AVA, чтобы протестировать вашу библиотеку.

Другие вопросы по тегам