2016-06-29 5 views

Antwort

5

Sein ganz einfach, wenn ein Nachtschwärmer-Test ausgeführt wird, die browser (oder client) Parameter übergeben wird, zum Beispiel:

module.exports = { 
    'Demo test GitHub': function (browser) { 
    console.log(browser.options); // this will output the browser details 
    browser 
     .url('http://www.github.com/dwyl') // visit the url 
     .waitForElementVisible('body'); // wait for the body to be rendered 
     .assert.containsText('body', 'do what you love') // assert contains 
     .saveScreenshot('dwyl_github.png') 
     .end(); 
    } 
}; 

Das browser Objekt enthält ein options Objekt mit der folgenden Form:

{ screenshots: true, 
    screenshotsPath: './node_modules/nightwatch/screenshots/1.0.20/', 
    skip_testcases_on_fail: true, 
    log_screenshot_data: true, 
    username: 'thisguy', 
    accessKey: 'notimportant', 
    desiredCapabilities: 
    { browserName: 'internet explorer', 
    javascriptEnabled: true, 
    acceptSslCerts: true, 
    platform: 'Windows 10', 
    version: '11.0', 
    name: 'Github' } } 

Also haben wir eine kleine Hilfsfunktion geschrieben, um den Namen des Browsers in eine Zeichenkette zu formatieren, die wir in den Screenshot-Dateinamen aufnehmen könnten:

function userAgent(browser) { // see: https://git.io/vobdn 
    var a = browser.options.desiredCapabilities; 
    return (a.platform + '~' + a.browserName + '~' + a.version).replace(/ /g, ''); 
} 

, die dann als verwendet:

module.exports = { 
    'Demo test GitHub': function (browser) { 
    console.log(browser.options); // this will output the browser details 
    browser 
     .url('http://www.github.com/dwyl') // visit the url 
     .waitForElementVisible('body'); // wait for the body to be rendered 
     .assert.containsText('body', 'do what you love') // assert contains 
     .saveScreenshot(userAgent(browser) + '_dwyl_github.png') 
     .end(); 
    } 
}; 

Beispiel Dateiname: Windows10~internetexplorer~11.0~dwyl_github.png

Der Grund für die Verwendung ~ ("Tilde") als das Worttrenn später split auf diese können wir so war Charakter in unserem Screenshot-Viewer. Siehe: https://github.com/dwyl/learn-nightwatch für weitere Details.