
Security News
Scaling Socket from Zero to 10,000+ Organizations
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.
bant-mochify
Advanced tools
TDD with Browserify, Mocha, PhantomJS and WebDriver

This will install Mochify in your current project and add it to the
devDependencies:
npm install mochify --save-dev
npm install phantomjs -g or download from
http://phantomjs.org/phantomjs executable is in your PATH or use
--phantomjs <path>Configure "scripts" in your package.json so that your project ships with the
testing infrastructure:
"devDependencies" : {
"mochify" : "*"
},
"scripts" : {
"start" : "mochify --watch",
"phantom" : "mochify",
"wd" : "mochify --wd",
"cover" : "mochify --cover",
"test" : "npm run phantom && npm run wd && npm run cover"
}
To run from the command line, either run npm install mochify -g to have
mochify available globally, or from within your project directory run:
node_modules/.bin/mochify
Browserifies ./test/*.js, decorated with a Mocha test runner, runs it in
PhantomJS with phantomic and pass the output back to your console. Cleans
up your stack traces by mapping back to the original sources and throws out all
the lines from the test framework.
Run mochify --help to see all available options.
--watch or -w use watchify to watch your files and run the tests on
change.--reporter or -R changes the Mocha reporter (see further down).--grep sets the Mocha grep option.--invert sets the Mocha grep invert flag.--recursive include sub directories.--ui or -U changes the Mocha UI. Defaults to 'bdd'.--timeout or -t changes the Mocha timeout. Defaults to 2000.--require or -r requires the given module.--debug launches the WebKit debugger.--port uses a specific port for the PhantomJS server.--phantomjs uses a specific PhantomJS executable. If not specified,
phantomjs is expected on the $PATH.--web-security enables PhantomJS web security and forbids cross-domain XHR
(default is true)--cover checks code coverage with coverify.--node runs test cases on node (useful with --cover).--wd use min-webdriver to run the tests in multiple real browsers.--url (only with --wd) runs the tests in the context of the given URL.--consolify output.html generate a standalone HTML page with consolify.--transform specifies a Browserify transform to add. Can be specified
multiple times. Options can be passed with subargs.--plugin specifies a Browserify plugin to add. Can be specified multiple
times. Options can be passed with subargs.--extension search for files with the extension in "require" statements.--yields or -y changes the yield interval to allow pending I/O to happen.--version or -v shows the Mochify version number.--help or -h shows usage and all available options.java -jar selenium-server-standalone-2.39.0.jar
Create .min-wd in your project root:
{
"hostname" : "localhost",
"port" : 4444,
"browsers" : [{
"name" : "internet explorer",
"version" : "9"
}, {
"name" : "chrome"
}, {
"name" : "firefox"
}]
}
That's it! Now mochify --wd will run your Mocha test cases in the configured
browsers simultaniously. If you installed mochify without -g, you will have
to run node_modules/.bin/mochify --wd.
Export your SauceLabs credentials:
export SAUCE_USERNAME="your-user-name"
export SAUCE_ACCESS_KEY="your-access-key"
Enable SauceLabs in your .min-wd file:
{
"sauceLabs": true
}
For more information about Selenium WebDriver and SourceLabs support can be found on the min-webdriver project page.
Mocha reporters known to work:
Note: Consuming the output of a machine readable reporter may not work as
expected with --wd.
var mochify = require('mochify');
mochify('./test/*.js', {
reporter : 'tap',
cover : true
}).bundle();
mochify() uses default settings and runs tests in ./test/*.jsmochify(paths) specifies the paths, a space delimited list of globsmochify(opts) configures options as described belowmochify(paths, opts) combines custom paths and optionsAll long form command line options can be used. E.g. --node can be configured
as { node : true }, --reporter tab as { reporter : 'tab' } and so on.
Additional API options:
output a stream that receives the test output (e.g. through2)Install the mochify-istanbul plugin:
$ npm install mochify-istanbul --save-dev
Using a package.json script that can be run with npm run cover:
"scripts" : {
"cover" : "mochify --plugin [ mochify-istanbul --report cobertura ]"
}
Using the API:
var mochify = require('mochify');
var istanbul = require('mochify-istanbul');
mochify().plugin(istanbul, {
report: ['text', 'html', 'text-summary']
}).bundle();
MIT
FAQs
TDD with Browserify, Mocha, PhantomJS and WebDriver
We found that bant-mochify 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
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.

Research
Socket Threat Research maps a rare inside look at OtterCookie’s npm-Vercel-GitHub chain, adding 197 malicious packages and evidence of North Korean operators.

Research
Socket researchers identified a malicious Chrome extension that manipulates Raydium swaps to inject an undisclosed SOL transfer, quietly routing fees to an attacker wallet.