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(); });