如何在浏览器环境中运行单元测试?

时间:2017-07-29 18:15:30

标签: javascript unit-testing headless ava google-chrome-headless

我正在为一些操纵DOM的代码编写测试,我想在浏览器环境中运行它,我不知道如何。

我使用测试库AVA为我的小型库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)
})

并希望在Headless Chrome中运行它。

我尝试使用av​​a插件karma-ava设置Karma,但它甚至不起作用,这是错误消息:

如果可能的话,我不会选择Karma路线,但我不知道其他任何方式!我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您不需要在浏览器中实际测试,那么browser testing配方包含一些有用的指示。

https://github.com/avajs/karma-ava在一年多的时间里没有看到任何工作,所以如果不起作用我就不会感到惊讶。

如果您确实需要在实际浏览器中运行代码,我会使用http://www.nightmarejs.org/或带有HTML文档的内容,您可以通过AVA进行控制以测试您的库。