mercredi 19 septembre 2018

testcafe running different tests based on browser

I was wondering if there is a way to somehow pass a parameter to let your fixture or even all tests know which browser they are running in.

In my particular case, I would use that parameter to simply assign a corresponding value to a variable inside my tests.

For example,

    switch(browser) {
            case 'chrome':
                chrome = 'chrome.com';
                break;
            case 'firefox':
                link = 'firefox.com';
                break;
            case 'safari':
                link = 'safari.com';
                break;            
            default:
                break;
}

Currently, I was able to achieve something similar by adding a global node variable and it looks something like this:

"chrome": "BROWSER=1 node runner.js"

However, this makes me create a separate runner for every browser (safari-runner, chrome-runner etc.) and I would like to have everything in one place.

So at the end of the day, I would need to make this work:

const createTestCafe = require('testcafe');

let testcafe         = null;

createTestCafe('localhost', 1337, 1338)
    .then(tc => {
        testcafe     = tc;
        const runner = testcafe.createRunner();

        return runner
            .src('test.js')
            .browsers(['all browsers'])
            .run({
                passBrowserId: true // I guess it would look something like this
            });
    })
    .then(failedCount => {
        console.log('Tests failed: ' + failedCount);
        testcafe.close();
    })
    .catch(error => {
        console.log(error);
        testcafe.close();
    });

Aucun commentaire:

Enregistrer un commentaire