Как запустить модульное тестирование в среде браузера?
Я пишу тест для некоторого кода, который манипулирует 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, чтобы протестировать вашу библиотеку.