2017-08-29 2 views
0

J'ai écrit quelques tests pour ma page d'accueil mais les tests sont très génériques, comme le pied de page, la vérification des en-têtes.nightwatchjs, exécutez même test sur plusieurs pages

Ma structure de test est comme:

const footerCheck = function(browser){ 
    browser.url("example.com"); 
    browser.verify.elementPresent(".footer-top", "Footer-top is present.") 
    browser.verify.elementPresent(".footer-middle", "Legal notice bar is present") 
    browser.verify.elementPresent(".footer-bottom", "Copyright bar is present") 
    } 

export.module = { 
"Footer Check" : footerCheck 
} 

Disons que j'ai 100 pages. Je voudrais exécuter la fonction footerCheck sur toutes les centaines de pages.

URL comme example.com/page1, example.com/page2, example.com/page3 ...

Comme tous les tests sont valables pour d'autres pages que je voudrais boucle toutes les pages pour le même test cas. D'une manière ou d'une autre, je n'arrivais pas à comprendre.

Comment est-ce possible, toute aide serait appréciée.

Merci

+0

S'il vous plaît fournir plus des exemples de code, votre question est trop générale. –

+0

@BaoTran J'ai mis à jour mon code, j'espère que cela donne une idée. – serkan

+0

J'ai répondu à une question similaire hier ici https://stackoverflow.com/questions/45988237/mocha-unable-to-run-with-nightwatch/46077141#46077141. Vous pouvez créer des tests dynamiques si vous utilisez Mocha, le concombre fonctionne aussi mais il ajoute une autre couche à vos tests et si votre équipe n'est pas tout à bord avec du BDD et du concombre, cela nuira à votre productivité à mon avis. – sonhu

Répondre

1

Dans mon expérience personnelle, la meilleure façon de le faire BDD ajoute le concombre qui utilise la syntaxe gherkin. Il est plus clair et aide beaucoup à réduire le code redondant si vous savez l'utiliser correctement. Il y a un Nightwatch npm plugin ajouter le concombre, une fois que vous avez ajouté que vous devez créer votre fichier .feature comme le

suivant
Feature: Check elements are present 
Scenario Outline: 
Given the user enters on a <page> 
Then .footer-top, .footer-middle and .footer-bottom class should be enabled 

Examples: 
|page| 
|page.com/page1| 
|page.com/page2| 
|page.com/page3| 

Et vos définitions étape (où vous déclarez ce que fera chaque étape), il se lance automatiquement chaque étape pour chaque URL fournie dans les exemples (notez le drapeau <page> qui sera remplacé sur l'exemple, la première rangée est le nom de la balise).

Jetez un oeil à la examples