0

J'écris un test pour un code qui manipule le DOM, et je voulais l'exécuter dans un environnement de navigateur et je ne sais pas comment.Comment puis-je exécuter un test unitaire dans un environnement de navigateur?

j'ai écrit un test en utilisant mockup la bibliothèque de tests AVA, pour ma petite bibliothèque 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) 
}) 

et voulait courir dans Headless Chrome.

J'ai essayé la mise en place Karma avec le plugin ava karma-ava mais il ne fonctionne même pas, voici le message d'erreur:

Je ne voudrais pas aller avec la route Karma si possible , mais je ne connais pas d'autre moyen! Que puis-je faire?

+0

voir dans casperjs. casper est un emballage pour phantomjs et fait toutes les choses que vous recherchez. – archae0pteryx

+0

J'ai reçu l'article pour vous: https://developers.google.com/web/updates/2017/06/headless-karma-mocha-chai. Bonne chance –

+0

@TravelingTechGuy ouais j'ai essayé d'aller le chemin de cet article et en utilisant le karma, mais ça n'a pas fonctionné avec ava – Pontiacks

Répondre

1

Si vous n'avez pas besoin de en fait tester dans un navigateur alors la recette browser testing inclut quelques pointeurs utiles.

https://github.com/avajs/karma-ava n'a pas vu de travail depuis plus d'un an, donc je ne suis pas surpris si cela ne fonctionne pas.

Si vous avez besoin d'exécuter votre code dans un navigateur, j'utiliserais http://www.nightmarejs.org/ ou quelque chose avec un document HTML que vous pouvez contrôler depuis AVA afin de tester votre bibliothèque.

+0

Oui, je connaissais nightmare.js, mais je voulais utiliser HeadlessChrome parce qu'il est plus frais. Aussi Chromeless a le même api de nightmare.js – Pontiacks

+0

Très bien, essayé navigateur-env comme cette recette l'a dit, a couru dans le problème https://github.com/tmpvar/jsdom/issues/639. Également essayé moka et il a des problèmes avec async/await. Donc je suppose que les tests de baise pour ce repo. Merci pour l'aide de toute façon. – Pontiacks