Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
grunt-saucelabs-qunit
Advanced tools
A Grunt task for running qunit tests using Sauce Labs' Cloudified Browsers.
Grunt is a task-based command line build tool for JavaScript projects, based on nodejs. QUnit is a powerful, easy-to-use JavaScript unit test suite used by the jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code, including itself! Sauce Labs offers browser environments on the cloud for testing code.
The Grunt Qunit task runs qunit based test suites on [PhantomJS]. This Grunt-Saucelabs-Qunit task is very similar but runs the test suites on the cloudified browser environment provided by Sauce Labs. This ensures that subject of the test runs across different browser environment. The task also uses Sauce Connect to establish a tunnel between Sauce Labs browsers and the machine running Grunt to load local pages. This is typically useful for testing pages on localhost that are not publically accessible on the internet.
This task is available as a node package and can be installed as npm install grunt-saucelabs-qunit
. It can also be included as a devDependency in package.json in your node project.
To use the task in grunt.js
, load the npmTask.
grunt.loadNpmTasks('grunt-saucelabs-qunit');
In the grunt.initConfig
, add the configuration that looks like the following
'saucelabs-qunit': {
all: {
username: 'saucelabs-user-name',
key: 'saucelabs-key',
urls: ['array or URLs to to load for QUnit'],
tunnelTimeout: 'A numeric value indicating the time to wait before closing all tunnels ',
testTimeout: 'Milliseconds to wait before timeout for qunit test per page'
testname: 'Name of the test',
tags: ['Array of tags']
browsers: [{
browserName: 'opera'
}],
onTestComplete: function(){
// Called after a qunit unit is done, per page, per browser
// Return true or false, passes or fails the test
// Returning undefined does not alter the test result
// For async return, call
var done = this.async();
setTimeout(function(){
// Return to this test after 1000 milliseconds
done(/*true or false changes the test result, undefined does not alter the result*/);
}, 1000);
}
}
}
The parameters are
process.env.saucekey
. Requiredserver
task from grunt. Requiredthis.async()
in the function. The return of this.async()
is a function that should be called once the async action is completed.A typical test
task running from Grunt could look like grunt.registerTask('test', 'server qunit saucelabs-qunit');
This starts a server and then runs the Qunit tests first on PhantomJS and then using the Sauce Labs browsers.
Here is an example grunt.js
file - https://gist.github.com/4061787.
Grunt tasks are usually run alongside a continuous integration system. For example, when using Travis, adding the following lines in the package.json ensures that the task is installed with npm install
is run. Registering Saucelabs in test task using grunt.registerTask('test', 'server saucelabs-qunit');
ensures that the CI environment runs the tests using npm test
.
To secure the Sauce Key, the CI environment can be configured to provide the key as an environment variable instead of specifying it file. CI Environments like Travis provide ways to add secure variables in the initial configuration.
The IndexedDBShim is a project that uses this plugin in a CI environment. Look at the .travis.yml and the grunt.js for usage example.
FAQs
Grunt task running Qunit tests using Saucelabs
The npm package grunt-saucelabs-qunit receives a total of 10 weekly downloads. As such, grunt-saucelabs-qunit popularity was classified as not popular.
We found that grunt-saucelabs-qunit demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.