2017-08-29 5 views
0

Ich habe einige Tests für meine Homepage geschrieben, aber die Tests sind sehr generisch, wie Fußzeile, Header-Überprüfung.nightwatchjs, führen Sie den gleichen Test auf mehreren Seiten

Meine Teststruktur ist wie:

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 
} 

Lets sagen, dass ich 100 Seiten haben. Ich möchte footerCheck ausführen Funktion auf allen hundert Seiten ausgeführt werden.

URLs wie example.com/page1, example.com/page2, example.com/page3 ...

Da alle Tests gelten für andere Seiten würde ich alle Seiten Schleife für den gleichen Test wie Fälle. Irgendwie konnte ich es nicht verstehen.

Wie ist das möglich, jede Hilfe wäre willkommen.

Dank

+0

Bitte geben Sie, Ihre Frage zu allgemein. –

+0

@BaoTran Ich habe meinen Code aktualisiert, hoffe, es gibt eine Idee. – serkan

+0

Ich beantwortete eine ähnliche Frage gestern hier https://stackoverflow.com/questions/45988237/mocha-unable-to-run-with-nightwatch/46077141#46077141. Sie können dynamische Tests erstellen, wenn Sie Mocha verwenden, Gurke funktioniert auch, aber es fügt Ihren Tests eine weitere Ebene hinzu und wenn Ihr Team nicht alle mit BDD und Gurke an Bord ist, wird es Ihrer Produktivität meiner Meinung nach schaden. – sonhu

Antwort

1

In meiner persönlichen Erfahrung, die beste Art und Weise zu tun BDD Gurke ist das Hinzufügen, die gherkin Syntax verwendet. Es ist übersichtlicher und hilft viel, redundanten Code zu reduzieren, wenn Sie ihn gut verwenden. Es gibt eine Nightwatch npm plugin Gurke hinzuzufügen, sobald Sie es hinzugefügt haben Sie Ihre .feature Datei wie folgt

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| 

Und Ihre Schritt Definitionen erstellen (in dem Sie erklären, was jeden Schritt tun wird) es jeweils automatisch ausgeführt werden soll Schritt für jede URL in den Beispielen zur Verfügung gestellt (beachten Sie die <page> Flag, die im Beispiel ersetzt wird, ist die erste Zeile der Name des Tags).

Werfen Sie einen Blick auf die mehr Beispielcode examples

Verwandte Themen