Package detail

mochify

mantoni18.2kMIT9.2.0

TDD with Browserify, Mocha, Headless Chrome and WebDriver

mocha, browserify, watchify, headless

readme

Mochify

TDD with Browserify, Mocha, Headless Chrome and WebDriver

Build SemVer License

Browserifies ./test/*.js, decorated with a Mocha test runner, runs it in Headless Chrome and passes the output back to your console. Cleans up your stack traces by mapping back to the original sources and removing lines from the test framework.

Features

  • Run tests in Headless Chrome
    • Supports watch-mode with pre-loaded Chrome page (with --watch)
    • Use the Chrome developer tools for debugging (docs)
    • Run builds in CI (docs)
    • Load tests in the context of a file or URL (with --url)
    • Optional built-in HTTPS server (with --https-server)
  • Run tests in real browsers
  • Code coverage options:
  • Works with most Mocha reporters (docs)
  • Exposes a Node API (docs)

Install

This will install Mochify in your current project and add it to the devDependencies:

npm install mochify --save-dev

Puppeteer will download a recent version of Chromium. If you want to skip the download and provide your own executable instead, define the PUPPETEER_SKIP_CHROMIUM_DOWNLOAD environment variable or add this to your package.json:

{
  "config": {
    "puppeteer_skip_chromium_download": true
  }
}

For proxy settings and other environment variables, see the Puppeteer documentation.

Usage

Configure "scripts" in your package.json so that your project ships with the testing infrastructure:

{
  "scripts": {
    "test": "mochify",
    "watch": "mochify --watch",
    "webdriver": "mochify --wd"
  }
}

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

Debugging

Place a debugger statement in your source code and run mochify --debug. This will open a Chromium instance with developer tools opened and it will break at the debugger statement.

Command line 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.
  • --colors explicitly enables color output.
  • --no-colors explicitly disables color output.
  • --outfile or -o writes output to this file. If unspecified, mochify prints to stdout.
  • --require or -r requires the given module.
  • --debug launches a non-headless chromium instance with developer tools.
  • --chrome uses a specific Chrome executable. If not specified, the built-in chromium is used.
  • --ignore-ssl-errors tells Chrome whether or not to ignore ssl certificate issues (default is false)
  • --allow-chrome-as-root allows Chrome to run as root
  • --dumpio passed to puppeteer to dump all IO
  • --https-server launches an HTTPS server on the specified port. If no port is given a random available port will be used.
  • --viewport-width tells Chrome to use a certain width for its viewport.
  • --viewport-height tells Chrome to use a certain height for its viewport.
  • --cover checks code coverage with coverify.
  • --node creates a bare bundle and runs test cases on node.
  • --wd use min-webdriver to run the tests in multiple real browsers.
  • --url runs the tests in the context of the given URL.
  • --wd-file (only with --wd) specify the location of the .min-wd config file.
  • --consolify output.html generate a standalone HTML page with consolify.
  • --bundle specify a separate JS file export when using --consolify.
  • --transform specifies a Browserify transform to add. Can be specified multiple times. Options can be passed with subargs.
  • --global-transform specifies a Browserify transform to add globally. 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.
  • --no-browser-field turns off package.json browser field resolution.
  • --no-commondir preserve original paths.
  • --external marks given path or module as external resource and prevent from being loaded into the bundle.
  • --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.
  • --async-polling disables async polling when set to false (for use in Appium).
  • --mocha-path specifies path to a custom Mocha module
  • --web-security allows disabling same-origin policy (when set to false, passes down --disable-web-security to Chromium)

Continuous Integration

To run builds in CI services like Travis or CircleCI, you must pass --allow-chrome-as-root.

Here is a minimal .travis.yml:

language: node_js
node_js:
  - "16"

sudo: false

script:
  - npm test -- --allow-chrome-as-root

Selenium WebDriver setup

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": "11"
  }, {
    "name": "chrome"
  }, {
    "name": "firefox"
  }]
}

That's it! Now mochify --wd will run your Mocha test cases in the configured browsers simultaneously. If you installed mochify without -g, you will have to run node_modules/.bin/mochify --wd.

Additional Selenium capabilities and browser-specific capabilities can be specified with the capabilities property:

{
  "hostname": "localhost",
  "port": 4444,
  "browsers": [{
    "name": "chrome",
    "capabilities": {
      "chromeOptions": {
        "args": ["--headless", "--disable-gpu"]
      }
    }
  }]
}

SauceLabs setup

Export your SauceLabs credentials:

export SAUCE_USERNAME="your-user-name"
export SAUCE_ACCESS_KEY="your-access-key"

Enable SauceLabs in your .min-wd file or in the "webdriver" property in your package.json:

{
  "sauceLabs": true
}

For more information about Selenium WebDriver and SourceLabs support can be found on the min-webdriver project page.

Appium setup

Note: This has only be tested on Mac OS X High Sierra with the iOS Simulator so far. If you have successfully tested with other configurations, please file an issue so that we can extend the docs.

Setup for iOS Simulator on Mac OS X (requires XCode):

  • npm install -g appium
  • brew install carthage
  • Configure your .min-wd file or the "webdriver" property in your package.json like this:
{
  "hostname": "localhost",
  "port": 4723,
  "browsers": [{
    "name": "Safari",
    "platformName": "iOS",
    "platformVersion": "11.2",
    "deviceName": "iPhone Simulator"
  }]
}
  • Run appium --log-level error which should start a server on port 4723
  • Run mochify --wd --async-polling false

It's important to use --async-polling false here. The default asynchronous polling does not work with this setup.

BrowserStack setup

Export your BrowserStack credentials:

export BROWSERSTACK_USERNAME="your-user-name"
export BROWSERSTACK_ACCESS_KEY="your-access-key"

Example .min-wd file:

module.exports = {
  "hostname": "hub-cloud.browserstack.com",
  "port": 80,
  "browsers": [{
    "name": "chrome",
    "capabilities": {
      "browser": "Chrome",
      "browserstack.user": process.env.BROWSERSTACK_USERNAME,
      "browserstack.key": process.env.BROWSERSTACK_ACCESS_KEY
    }
  }]
}

Reporters

Mocha reporters known to work:

  • min
  • dot
  • list
  • spec
  • tap
  • json
  • doc
  • xunit
  • markdown
  • landing
  • nyan

Note: Consuming the output of a machine readable reporter may not work as expected with --wd.

API

var mochify = require('mochify');

mochify('./test/*.js', {
  reporter: 'tap'
}).bundle();
  • mochify() uses default settings and runs tests in ./test/*.js
  • mochify(paths) specifies the paths, a space delimited list of globs
  • mochify(opts) configures options as described below
  • mochify(paths, opts) combines custom paths and options

All long form command line options can be used. E.g. --node can be configured as { node : true }, --no-browser-field as { 'browser-field': false }, --reporter tab as { reporter : 'tab' } and so on.

Additional API options:

  • output a stream that receives the test output (e.g. through2)
  • glob options to pass to glob
  • reporterOptions options to pass to mocha reporter

The mochify function returns a Browserify instance. Please refer to the Browserify API for details.

Code coverage with NYC

Install nyc, the babelify transform, @babel/core and babel-plugin-istanbul:

$ npm install nyc babelify @babel/core babel-plugin-istanbul --save-dev

Using a package.json script that can be run with npm run cover:

{
  "scripts" : {
    "cover" : "nyc --instrument false mochify --transform [ babelify --ignore [ test ] --plugins [ babel-plugin-istanbul ] ]"
  }
}

Workaround for Apple Silicon

Puppeteer fails to launch on M1. Follow these steps to work around:

  • Install Google Chrome
  • Define these environment variables:

    export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
    export PUPPETEER_EXECUTABLE_PATH=/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
    

Compatibility

  • v8.x
    • Node Node 12.0+, Node 14.0+, Node 16.0+
    • Mocha ^8.4
    • Browserify ^16.5
    • Puppeteer ^9.1
  • v7.x
    • Node 10.0+, Node 12.0+, Node 14.0+
    • Mocha ^5.2
    • Browserify ^16.5
    • Puppeteer ^5.3
  • v6.x
    • Node 6.0+, Node 8.0+, Node 10.0+
    • Mocha ^5.2
    • Browserify ^16.2
    • Puppeteer ^1.10
  • v5.2+
    • Node 6.0+, Node 8.0+
    • Mocha ^4.1
    • Browserify ^15.2
    • Puppeteer ^1.0
  • v5.0 - v5.1
    • Node 6.0+, Node 8.0+
    • Mocha ^4.0
    • Browserify ^14.4
    • Puppeteer ^0.13
  • v4.x
    • Node 4.0+, 6.0+, Node 8.0+
    • PhantomJS 1.9, 2.0
    • Mocha ^4.0
    • Browserify ^14.4
  • v3.x
    • Node 4.0+
    • Mocha ^3.2
    • Browserify ^14.1
  • v2.15+
    • Browserify 13.x
  • v2.14
    • Mocha ^2.3
  • v2.13
    • Browserify 11.x
  • v2.10 - v2.12
    • Browserify 10.x
  • v2.5 - v2.9
    • Browserify 9.x
  • v2.4
    • Browserify 8.x
  • v2.3
    • Browserify 7.x
  • v2.0 - v2.2
    • Browserify 6.x
    • Mocha 2.x
  • v1.x
    • Browserify 5.x
    • Mocha 1.x
  • v0.x
    • Browserify 4.x

License

MIT

changelog

Changes

9.2.0

Released by Frederik Ring on 2022-02-21.

9.1.0

  • 🛡 8393306 Update mocaccino/mocha to 9.2.0 (#277) (Frederik Ring)

Released by Frederik Ring on 2022-01-24.

9.0.0

  • 💥 27c355e Update mocaccino to v6 and mocha to v9 (#276) (Albert Wang)

Released by Frederik Ring on 2021-12-29.

8.1.0

  • 71f4376 Update puppeteer to 10.0.0 (#228) (Albert Wang)

Released by Frederik Ring on 2021-06-22.

8.0.1

  • 🛡 20f8748 Update transient ws dependency through npm audit (Frederik Ring)
  • 🛡 255aaea Update watchify package to v4.0.0 (#226) (Albert Wang)
  • 🛡 9a9e1ac Clean up package-lock.json (#227) (Albert Wang)
  • 3179da8 Migrate CI to GitHub actions (Frederik Ring)

Released by Frederik Ring on 2021-06-20.

8.0.0

  • 💥 119d6f0 Update mocaccino, mocha and puppeteer (Frederik Ring)
  • 💥 9655108 Drop node 10 support (Frederik Ring)
  • 📚 4147ccc Document compatibility for v8.x
  • 🐛 9a706fe Swallow deprecation notices about window.webkitStorageInfo (Frederik Ring)

Released by Maximilian Antoni on 2021-05-25.

7.1.1

  • 🐛 eb70de7 Remove dependency on removed nyc feature (Albert Wang)
  • 🛡 59e4350 Npm update (Albert Wang)
  • 📚 1bc13ff Update readme (Albert Wang)
  • b039a55 Test with node 16 (Albert Wang)

Released by Maximilian Antoni on 2021-05-23.

7.1.0

  • 🍏 1248c7f Upgrade puppeteer to v8
  • 🐛 b23b3bd Workaround PUPPETEER_EXECUTABLE_PATH not being respected
  • 📚 2806265 Document workaround for Apple Silicon
  • 🛡 cccf180 Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot])
  • 63f4dc5 Update Studio Changes

Released by Maximilian Antoni on 2021-04-20.

7.0.0

  • 💥 4eb8c25 Use Node LTS versions (Morgan Roderick)
  • 🍏 c2f2ffd Upgrade puppeteer to v5.3.1 (chrome-86)
  • 🍏 eaec923 Update browserify
  • 🍏 1f1dcac Update min-wd
  • 🛡 6f54831 npm audit
  • 298f173 Update coverify
  • 9a004f9 Upgrade Studio Changes
  • e026ff3 Upgrade ESLint to latest (Morgan Roderick)
  • 📚 82dc5c6 Add compatibility notes for v7
  • 📚 62a3145 State that nyc@15 is not yet supported

Released by Maximilian Antoni on 2020-11-10.

6.6.0

  • 🍏 615584c Introduce --no-detect-globals
  • 🐛 03c3976 Fix --yields assuming process.nextTick

Released by Maximilian Antoni on 2019-10-09.

6.5.0

Released by Maximilian Antoni on 2019-10-05.

6.4.1

  • 🐛 28de861 Fix SSL certificate warning filter

Released by Maximilian Antoni on 2019-08-09.

6.4.0

  • 🍏 ff7decb Prevent resources from logging errors >
    • Swallow SSL certificate warning on https page load
    • Handle image, font and stylesheet requests to prevent warnings
  • 🍏 3f96b8c Upgrade puppeteer to v1.19.0
  • 🐛 e663ea8 Make chromium tests less flaky >
    • Use a random port in https-server tests.
    • Wait for server.close to finish.
  • 🛡 abebbf3 npm audit
  • 🛡 34a3392 Bump lodash from 4.17.11 to 4.17.14 (#204) (dependabot[bot]) >

    Bumps lodash from 4.17.11 to 4.17.14.

    Signed-off-by: dependabot[bot] support@github.com

Released by Maximilian Antoni on 2019-08-09.

6.3.0

Released by Maximilian Antoni on 2019-06-10.

6.2.0

  • 8f70a5e + 5bf4aa8 Enable support for passing --dumpio to Puppeteer (Carl-Erik Kopseng)

Released by Maximilian Antoni on 2019-03-27.

6.1.1

Released by Maximilian Antoni on 2019-03-13.

6.1.0

Introduce the --mocha-path option to specify a custom Mocha module.

  • a8685b4 Add support for custom mocha path (#195) (Christopher Hiller)
  • d8a0a9c Fix linter issues
  • 3a49f42 Update eslint to address security issues
  • 7551a07 Merge test cases for sync and async failure, test for early exit on evaluation error (Frederik Ring)
  • ccc4138 Improve test case for async failure (Frederik Ring)

Released by Maximilian Antoni on 2019-03-02.

6.0.4

  • b15cf0f Do not exit on puppeteer pageerror event (Frederik Ring)

Released on 2018-11-24.

6.0.3

  • 28633c4 Handle promise rejection when calling browser.newPage() (Frederik Ring)
  • cd89125 Add note about required flags in CircleCI (Frederik Ring) >

    Starting with v6, mochify will require the --allow-chrome-as-root flag to passed on CircleCI just like on Travis

Released on 2018-11-21.

6.0.2

  • 78dcbe9 Add link to nyc
  • 3512b7f Serve files with content-type headers >

    This adds mime as a dependency to lookup the content-type based on the file extension. This package was chosen because it's already used by Puppeteer, hence it's not adding any weight.

Released by Maximilian Antoni on 2018-11-19.

6.0.1

  • d667e7c Upgrade Mocaccino to v4 >

    Mocaccino used to load Mocha 4 still, causing two Mocha versions to be installed.

Released by Maximilian Antoni on 2018-11-19.

6.0.0

Highlights: Mocha 5, Browserify 16, Puppeteer 1.10 and Istanbul nyc code coverage support.

  • 999c56e Add compatibility notes for v6
  • 0211b75 Remove mochify-istanbul documentation >

    With support for nyc and the mochify-istanbul project being unmaintained, we shouldn't send people down that road any longer.

  • 3b0c553 Istanbul nyc support
  • 8f2dfff Update @studio/changes for --commits and --footer support
  • ddf1297 Update Puppeteer to v1.10
  • 50f1aa6 Update Mocha to v5.2
  • 1bf51a2 Upgrade browserify and watchify (Morgan Roderick) >

    This means that cached-path-relative will be upgraded to 1.0.2, which fixes a security warning:

    See: https://nvd.nist.gov/vuln/detail/CVE-2018-16472

  • f32782a Display build status from master in README (Frederik Ring)
  • e18817a Do not call methods on browserify object asynchronously to ensure predictable order (Frederik Ring)
  • 3973602 Consolidate validation of options in one place (Frederik Ring)

Released by Maximilian Antoni on 2018-11-19.

5.8.1

  • Ensure browserify plugins are always mounted in the same order - fixes #177 (Frederik Ring)
  • Use puppeteer v1.6 and source-mapper v2.1 to ensure correct stack traces

5.8.0

  • Add examples for custom Selenium capabilities and BrowserStack (Steffen André Langnes)
  • Update min-wd to 2.11.0 (Steffen André Langnes)

5.7.0

  • Print non-log console messages to stderr

    Puppeteer >= 1.4.0 introduced changes that alter which messages trigger console events. Non-log messages are now written to stderr. Bump puppeteer to ^1.4.0. Add Node 10 to .travis.yml.

  • Dependency hygiene (npm audit) (Morgan Roderick)

  • Add Travis configuration example
  • Move Selenium WebDriver instructions up
  • Document async polling arg in readme and help text (Frederik Ring)

5.6.1

  • Make chromium wrapper more resilient

    • Handle thrown errors in global execution
    • Cleanup resources in race conditions
    • Avoid cyclic page load execution
    • Do not log parser errors twice
    • Do not close server in watch mode

5.6.0

  • Support iOS Simulator via Appium
  • Apply server url also when using --wd
  • Add --async-polling option

5.5.0

  • Align help.txt file with README (Frederik Ring)
  • Enable passing of url without additionally specifying port (Frederik Ring)

    when --url is given, the port to be used by the local https server can be derived in case the --https-server arg is empty

5.4.0

  • improve port handling for https server (Frederik Ring)

    When no port is given for the --https-server arg, pick a random free one. When a port is specified but already in use, fail with a meaningful error message.

5.3.1

  • Properly cast viewport parameters to integer values (fixes #166) (Frederik Ring)

5.3.0

  • Add support for the --global-transform Browserify option

5.2.0

  • Upgrade to Puppeteer 1 and Browserify 15

5.1.0

This release allows Mochify to be used in CircleCI!

5.0.0

This release REPLACES PhantomJS with Headless Chrome!

Not all features could be preserved, unfortunately (see known issues below). The improved compatibility, performance and debugging features make this a great step forward, but consider this release to be potentially immature as the underlying Puppeteer implementation is under heavy development. Carefully test whether upgrading is acceptable for your project.

Breaking changes

  • Runs Headless Chrome by default
  • Puppeteer requires Node 6, so support for Node 4 had to be dropped.
  • PhantomJS was removed entirely and with it the --port and --phantomjs options.
  • Downloads a recent chromium version during installation. See the install instructions in the README.md if this is causing trouble.

New features

  • --url to run tests in the context of a web page can now also be used with Headless Chrome. This was previously limited to WebDriver. Can be a file: URL.
  • --https-server launches a simple HTTPS server with a self-signed certificate and tests are run in the context of an empty page. Additional files that are requested are looked up from the current directory. This can be used to run tests in a Worker. This can be combined with --url to load a specific HTML page through the HTTPS server.
  • --debug runs the tests in a full chrome instance with developer tools. Use the debugger statement to set a breakpoint.
  • --chrome allows to specify a Chrome executable to run instead of the built-in chromium.
  • --no-commondir is now forwarded to Browserify

Known issues

  • Page navigation is not prevented with Headless Chrome. Whether this is an issue depends on the way your test cases trigger page navigation.
  • Stack traces are missing in asynchronous test cases.

4.0.0

  • Update Mocaccino 3 and Mocha 4 (Carl-Erik Kopseng)

    Gets rid of a Growl dependency that had a vulnerability

3.3.0

  • Add support for --outfile

    This allows to send test results to a specified file for node and browser tests, e.g. mochify -R xunit --outfile xunit.xml

  • Remove "default" from dot reporter and add nyan

  • Add package-lock.json

3.2.1

  • Document viewport options in help.txt (Frederik Ring)

    Adds the viewport options to the CLI help output

3.2.0

  • Add option to pass viewport sizing to PhantomJS (PR #152) (Frederik Ring)

    Allows to configure the viewport width and height with the new options --viewport-width and --viewport-height.

3.1.1

  • fix behavior of --require flag (Wes)

3.1.0

  • Implement --external option (Koki Takahashi)

3.0.0

  • Use Mocha 3.2
  • Use Mocaccino 2
  • Use Browserify 14.1
  • Drop support for Node 0.10, 0.12, 5.0 and io.js and add 6.0
  • Change default reporter to spec
  • Add new node and remove old node from travis config
  • Use @studio/changes instead of make

2.19.0

  • Support passing reporterOptions to mocha reporter via API (Tomer Lahav). PR #144, fixes issue #143.

2.18.1

  • Always set process.exitCode = 1 on bundle errors. Fixes issue #109.
  • Loosen stack trace detection regexp to not require a leading "at".
  • Bump glob to ^7.0.
  • Add test coverage for --bundle and --consolify args (Jonny Reeves)
  • Fix tests for new tap version that was pulled (Jarrett Cruger)

2.18.0

  • Implement --browser-field option (Koki Takahashi)

2.17.0

  • Pass 'paths' option to Browserify. (Juha Hytönen)

2.16.0

  • Add --wd-file command line arg (Moshe Kolodny)

2.15.0

  • Browserify 13.0

To align with Browserify 13, all dependencies have been updated to versions that use through2@2 to use streams 3.

2.14.3

  • Handle bundle errors in --watch mode. Fixed issue #123.

2.14.2

  • Allow to combine a path with --recursive. Fixes issue #120.

2.14.1

  • Fix trace filter to also work with relative paths

2.14.0

  • Bump Mocha to ^2.3 and Mocaccino to ^1.6 to enable custom reporters

2.13.1

  • Only write to input if input stream is defined (Scott Corgan)
  • Only include minor changes rather than major for mocaccino (Chris Wheatley)
  • Move from jslint to eslint

2.13.0

  • Browserify 11.0

The current watchify dependency already used Browserify 11, causing Browserify to be installed twice.

2.12.0

  • Add postinstall script to use global phantomjs by default (Christopher Hiller)

2.11.1

  • Pass colors through to mocaccino (Christopher Hiller)

2.11.0

  • Add ignore SSL errors option --ignore-ssl-errors (Adrian Chang)

2.10.1

  • Do not override the min-wd timeout anymore

2.10.0

  • Major dependency upgrades:
    • browserify ^10.2
    • watchify ^3.2
    • through2 ^1.1
    • glob ^5.0

2.9.0

  • API: Pass glob options to glob (James Newell)
  • Added reporters to usage (Paul)

2.8.1

  • Revert to piping the readonly stream to output instead of b.pipeline

2.8.0

  • Use the new consolify browserify plugin
  • Add --bundle to export JS as a separate file when using consolify

2.7.2

  • Pipe internal pipeline to output instead of wrapped browserify output (Fixes

    80)

  • Remove obsolete error handling callback

2.7.1

  • Work around browserify 9.0.5 issue by setting the dependency to 9.0.4

2.7.0

  • Add options --colors and --no-colors to explicitly set Mocha colors

2.6.1

  • Fix consolify when used with --watch

2.6.0

  • Add --recursive flag to include tests in subdirectories (Dylan Fogarty-MacDonald)

2.5.0

  • Use Browserify 9
  • Run tests on node 0.10 and 0.12

2.4.0

  • Use Browserify 8

2.3.0

  • Use Browserify 7

2.2.0

  • Add --web-security option to toggle PhantomJS web security (Jacob Waller)

2.1.1

  • Run coverify transform after command-line transforms (Max Goodman)
  • Add mochify-istanbul example (Fernando Lores)

2.1.0

  • Add --extension support to require non-JS files (Ryohei Ikegami)

2.0.0

1.9.0

  • Add --require and -r support

1.8.0

  • Add --url option to run tests in the context of the given URL
  • Adjust window width when running tests with WebDriver

1.7.0

  • Add API

1.6.0

  • Add mocha grep --invert flag (Daniel Davidson)

1.5.1

  • Fix --cover for Windows (#34)
  • Improve phantomjs install instructions

1.5.0

  • Add support for mocha --grep option (Daniel Davidson)

1.4.0

  • Add --plugin support

1.3.0

  • Add --transform support
  • Fix unknown argument handling

1.2.0

  • Register mocha as a dependency (Barney)
  • Add "landing" to list of supported reporters

1.1.3

  • Log "# node:" and "# phantom:" titles before running tests
  • Fix test case to not fail due to varying timings

1.1.2

  • Enable colors in coverify if stderr is a tty

1.1.1

  • Fix resolving the browser part of consolify

1.1.0

  • Consolify support

1.0.6

  • Increase --watch performance by preloading phantomjs
  • Do not quit --watch on syntax errors

1.0.5

  • Fix coverage in phantomjs
  • Bump phantomic, source-mapper, resolve and glob

1.0.4

  • Fix trace handling on Windows
  • Use through2 instead of through

1.0.3

  • Avoid concurrent executions when using --watch

1.0.2

  • Refactor all launchers to be plugins

1.0.1

  • Fix relative paths in stack frames
  • Filter mocaccino stack trace frames

1.0.0

  • Require Browserify 5
  • Use 1.0.0 releases of mocaccino, min-wd and brout

0.11.3

  • Improve stack trace detection to not match arbitrary URLs

0.11.2

  • Fix --help

0.11.1

  • Allow --debug flag (Jerome Gravel-Niquet)

0.11.0

  • Use new source-mapper module to fix --node stacks
  • Upgraded phantomic to ~0.9.0

0.10.0

  • Upgraded mocaccino to ~0.8.0 (JP Richardson)
  • Added -t and --timeout arguments to be passed to mocaccino (JP Richardson)
  • Added -U and --ui arguments to be passed to mocaccino
  • Ugraded phantomic to ~0.8.0
  • Added --phantomjs argument to use a specific PhantomJS binary

0.9.4

  • Make coverify work with the dot reporter

0.9.3

  • Add brout dependency to make sure it's only loaded once
  • Fix min-webdriver require for windows (take IV)

0.9.2

  • Show meaningful error and exit if no files are found

0.9.1

  • Use -w as an alias for --watch (Andrey Popp)

0.9.0

  • Support Browserify 4
  • Fix min-webdriver require for windows (take III)

0.8.2

  • Fix min-webdriver require for windows (take II)

0.8.1

  • Fix min-webdriver path for windows

0.8.0

  • Stream partial lines of output that don't look like a stack
  • Change default reporter to 'dot' to align with the Mocha default
  • Use phantomic with 'brout' option
  • Bump dependencies

0.7.0

  • Add --yields / -y option to specify a yield interval to allow pending I/O to happen.

0.6.1

  • Fix an issue with the way min-wd was loaded

0.6.0

  • SauceLabs support
  • WebKit debugger support (--debug)
  • Auto-select free port for temporary webserver by default (override with --port)

0.5.3

  • Only replace paths in lines that look like stacktraces
  • Fixes an issue when using the xunit reporter

0.5.2

  • Filtered stack traces with relative source paths (Andrey Popp)

0.5.1

  • Add -h/--help and -v/--version (Andrey Popp)
  • Up mocaccino and phantomic

0.5.0

  • Code coverage support using coverify (--cover)
  • Allow to run tests on node, like browserify --bare script.js | node with --node. Can be combined with --cover.

0.4.2

  • Up phantomic

0.4.1

  • Up phantomic - fixes stack traces using the embedded source maps
  • Windows support
  • Waiting for a previous phantomic process to die before launching a new one

0.4.0

  • Using Mocaccino 0.3.0 which is now a Browserify plugin
  • Upgraded Browserify to 3.30.1
  • Resolving min-webdriver with resolve so that is can be a normal dependency

0.3.2

  • Exit with code 1 if phantom tests fail with "tap" reporter
  • Resolve Mocha properly

0.3.1

  • Enabled source maps
  • Fixed -R as a short form for --reporter
  • Changed default reporter to "dot" if not using --watch
  • More documentation

0.3.0

  • First release on npm