Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function command() {
const saucelabs = new SauceLabs({
password: process.env.SAUCE_ACCESS_KEY,
username: process.env.SAUCE_USERNAME
});
const sessionid = this.capabilities['webdriver.remote.sessionid'];
const jobName = this.currentTest.name;
saucelabs.updateJob(sessionid, {
name: jobName,
passed: this.currentTest.results.failed === 0
}, () => {
// empty
});
this.end();
}
/* eslint-enable babel/no-invalid-this */
module.exports = (function (settings) {
var isWindows = /^win/.test(process.platform);
var chromedriverPath = require.resolve('chromedriver');
var geckoDriverPath = require.resolve('geckodriver');
var chromeDriver = isWindows ? path.join(chromedriverPath, '../chromedriver', 'chromedriver.exe') : path.join(chromedriverPath, '../chromedriver', 'chromedriver');
var geckoDriver = isWindows ? path.join(geckoDriverPath, '../..', 'geckodriver.exe') : path.join(geckoDriverPath, '../..', 'geckodriver');
// The following environment variables are set to comma separated strings in index.js
// Here we will convert them to an array, as required by nightwatch.
settings.src_folders = process.env.KNE_TEST_PATHS.split(',');
settings.page_objects_path = process.env.KNE_PAGE_OBJECT_PATHS.split(',');
settings.test_settings.default.exclude = process.env.KNE_EXCLUDE_TEST_PATHS.split(',');
settings.globals_path = path.resolve(__dirname, 'globals.js');
settings.selenium.cli_args['webdriver.chrome.driver'] = chromeDriver;
settings.selenium.cli_args['webdriver.gecko.driver'] = geckoDriver;
if (process.env.KNE_BROWSER_NAME) {
settings.test_settings[process.env.KNE_TEST_ENV].desiredCapabilities.browserName = process.env.KNE_BROWSER_NAME;
}
if (process.env.KNE_BROWSER_VERSION) {
settings.test_settings[process.env.KNE_TEST_ENV].desiredCapabilities.version = process.env.KNE_BROWSER_VERSION;
}
console.log('nightwatch settings:'
+ '\n\tNightwatch Environment: ' + process.env.KNE_TEST_ENV
+ '\n\tNightwatch Start Selenium: ' + process.env.KNE_SELENIUM_START_PROCESS
+ '\n\tBrowser Name: ' + settings.test_settings[process.env.KNE_TEST_ENV].desiredCapabilities.browserName
+ '\n\tBrowser Version: ' + settings.test_settings[process.env.KNE_TEST_ENV].desiredCapabilities.version
+ '\n\tSauceLabs Tunnel Id: ' + process.env.TRAVIS_JOB_NUMBER
exports.command = function(callback) {
// sauce lab does not support the concept of branches, so only reporting the master results
if (process.env.BUILDKITE_BRANCH !== 'master') {
return callback();
}
const saucelabs = new SauceLabs({
username: process.env.SAUCE_USERNAME,
password: process.env.SAUCE_ACCESS_KEY,
});
const sessionId = this.capabilities['webdriver.remote.sessionid'];
const name = this.currentTest.name;
// TODO(#363): figure out how we can report proper test statuses for the master branch
saucelabs.updateJob(
sessionId,
{
passed: true,
name,
},
callback,
);
};
module.exports = (function (settings) {
// Setup the browser we use.
// We will use phantomjs by default.
var browser = process.argv[2] ? process.argv[2].replace(/-/g, '') : 'phantomjs'
if (browser === 'ie') browser = 'internet explorer'
// Tell Nightwatch where is the Selenium. | 设置 Selenium 所在位置。
settings.selenium.server_path = `${path.resolve()}/node_modules/selenium-standalone/.selenium/selenium-server/${seleniumConfig.selenium.version}-server.jar`
// Attach Chrome web driver. | 加载 Chrome Driver.
settings.selenium.cli_args['webdriver.chrome.driver'] = `${path.resolve()}/node_modules/selenium-standalone/.selenium/chromedriver/${seleniumConfig.driver.chrome.version}-${seleniumConfig.driver.chrome.arch}-chromedriver`
// Attach IE web driver. | 加载 IE Driver.
settings.selenium.cli_args['webdriver.ie.driver'] = `${path.resolve()}/node_modules/selenium-standalone/.selenium/iedriver/${seleniumConfig.driver.ie.version}-${seleniumConfig.driver.ie.arch}-IEDriverServer.exe`
// Attach Phantom.JS. | 设置 Phantom.JS.
settings.test_settings.default.desiredCapabilities['phantomjs.binary.path'] = phantomjs.path
// Setup browser that runs testing. | 设置使用的浏览器.
settings.test_settings.default.desiredCapabilities.browserName = browser
return settings
})(require('./nightwatch.json'))
fs.readdirSync(dirname)
.filter(isJson)
.forEach(saveSetting);
}
// main //
configs = checkConfigPath("./configs/defaults");
deployments = checkConfigPath("./configs/deployments");
capabilities = checkConfigPath("./configs/capabilities");
capabilities["localchrome"].selenium.cli_args["webdriver.chrome.driver"] += SUFFIX;
mergeDeploymentAndCapabilitiesJson();
doEnvironments(resolve(__dirname, "configs/TestConfigData"));
module.exports = configs;
module.exports = (function (settings) {
// Setup the browser we use.
// We will use phantomjs by default.
var browser = process.argv[2] ? process.argv[2].replace(/-/g, '') : 'phantomjs'
if (browser === 'ie') browser = 'internet explorer'
// Tell Nightwatch where is the Selenium. | 设置 Selenium 所在位置。
settings.selenium.server_path = `${path.resolve()}/node_modules/selenium-standalone/.selenium/selenium-server/${seleniumConfig.selenium.version}-server.jar`
// Attach Chrome web driver. | 加载 Chrome Driver.
settings.selenium.cli_args['webdriver.chrome.driver'] = `${path.resolve()}/node_modules/selenium-standalone/.selenium/chromedriver/${seleniumConfig.driver.chrome.version}-${seleniumConfig.driver.chrome.arch}-chromedriver`
// Attach IE web driver. | 加载 IE Driver.
settings.selenium.cli_args['webdriver.ie.driver'] = `${path.resolve()}/node_modules/selenium-standalone/.selenium/iedriver/${seleniumConfig.driver.ie.version}-${seleniumConfig.driver.ie.arch}-IEDriverServer.exe`
// Attach Phantom.JS. | 设置 Phantom.JS.
settings.test_settings.default.desiredCapabilities['phantomjs.binary.path'] = phantomjs.path
// Setup browser that runs testing. | 设置使用的浏览器.
settings.test_settings.default.desiredCapabilities.browserName = browser
return settings
})(require('./nightwatch.json'))
const reportResult = (client, done) => {
if (!process.env.TRAVIS) { return done(); }
const user = client.options.username;
const key = client.options.accessKey;
const jobId = client.capabilities['webdriver.remote.sessionid'];
if (user && key && jobId) {
const passed = client.currentTest.results.failed === 0;
console.log('* updating job status:', jobId, passed);
const url = 'https://saucelabs.com/rest/v1/' + user + '/jobs/' + jobId;
return request.put({
url: url,
auth: {
username: user,
password: key,
},
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ passed: passed }),
}, function(res, status, body) {
console.log('Sauce response:', body);
done();
module.exports = function sauce(client, callback) {
var currentTest = client.currentTest;
var username = client.options.username;
var sessionId = client.capabilities['webdriver.remote.sessionid'];
var accessKey = client.options.accessKey;
if (!username || !accessKey || !sessionId) {
console.log(client);
return callback();
}
var passed = currentTest.results.passed === currentTest.results.tests;
var data = JSON.stringify({ passed });
var axios = Axios.create({
baseURL: 'https://saucelabs.com',
auth: {
username: username,
password: accessKey
exports.command = function command(callback) {
const saucelabs = new SauceLabs({
username,
password: accessKey,
})
const sessionId = this.capabilities['webdriver.remote.sessionid']
const { name } = this.currentTest
const passed = this.currentTest.results.failed === 0
saucelabs.updateJob(sessionId, { passed, name }, callback)
return this
}
exports.command = function seleniumEnd(callback) {
const saucelabs = new SauceLabs({
username: image.username,
password: image.accessKey,
})
const sessionId = this.capabilities['webdriver.remote.sessionid']
const { name } = this.currentTest
const passed = this.currentTest.results.failed === 0
saucelabs.updateJob(sessionId, { passed, name }, callback)
return this
}