0

DOMを操作するコードのテストを書いていますが、ブラウザ環境で実行したかったのですが、どのようにしたらいいかわかりません。ブラウザ環境でユニットテストを実行するにはどうすればよいですか?

私は私の小さなライブラリpromisify-dom-selectorため、テストライブラリAVAを使用してモックアップテストを書いた:

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でそれを実行したいです。

私はAVAプラグインkarma-avaにカルマを設定しようとしましたが、それはここでも、動作しませんが、エラーメッセージです:

可能であれば私はカルマルートに行かないだろうしかし、私は他の方法を知らない!私に何ができる?

+0

casperjsを調べます。 casperはphantomjsのラッパーで、あなたが後にしているすべてのことをします。 – archae0pteryx

+0

https://developers.google.com/web/updates/2017/06/headless-karma-mocha-chaiの記事があります。幸運 –

+0

@TravelingTechGuyはい私はその記事のやり方を見て、カルマを使ってみましたが、avaでうまくいかなかった – Pontiacks

答えて

1

実際にのブラウザでテストする必要がない場合は、browser testingレシピに役立つポインタが含まれています。

https://github.com/avajs/karma-avaは1年以上で何の仕事も見ていないので、うまくいかないのは驚きではありません。

実際のブラウザでコードを実行する必要がある場合は、http://www.nightmarejs.org/などのHTMLドキュメントを使用して、ライブラリをテストするためにAVAから制御することができます。

+0

はい、私はnightmare.jsについて知っていましたが、HeadlessChromeをもっと使いたいと思っていました。 Chromelessもnightmare.jsの同じapiを持っています。 – Pontiacks

+0

申し訳ありませんが、そのレシピがhttps://github.com/tmpvar/jsdom/issues/639という問題に対処しているとブラウザのenvを試してみました。 mochaも試しましたが、async/awaitに問題があります。だから私はこのレポのファックテストを推測する。とにかく助けてくれてありがとう。 – Pontiacks

関連する問題