No description or website provided.
JavaScript CoffeeScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
lib
spec
test
views
.gitignore
Cakefile
README.md
package.json

README.md

mocha-server

Run your front-end mocha tests where they belong; in the browser! Much like jasmine-gem, mocha-server serves up your Mocha suite in a web page so you don't have to spend time writing HTML test runners and can focus on the code itself. You can even run them them headlessly with mocha-phamtomjs so they can be part of your build process!

Installation

npm install mocha-server

Usage

In its simplest form, you run mocha-server from the command-line:

$ mocha-server

This will launch a server that can be accessed at http://localhost:8888 ; open it with a browser to run the mounted tests.

The following flags can also be used:

  Usage: mocha-server [options]

  Options:

    --help               output usage information
    -V, --version            output the version number
    -r, --require <name>     require the given module
    -R, --reporter <name>    specify the reporter to use
    -u, --ui <name>          specify user-interface (bdd|tdd|exports)
    -b, --bail               bail after first test failure
    -h, --headless           run headless with phantomjs
    -c, --compilers <name>   pass in [ext]:[path to compiler]
    --agent <userAgent>      specify the user agent to use
    --cookie <name>=<value>  specify cookie
    --header <name>=<value>  specify custom header
    --setting <key>=<value>  specify specific phantom settings
    --view <width>x<height>  specify phantom viewport size
    --ignore-leaks           ignore global variable leaks
    --recursive              include sub directories

By default, tests are pulled in from the test directory.

Load Order

As dependencies can be very important in running Javascripts code and tests, mocha-server provides two mechanisms for ensuring the load order.

--require

First, the --require or -r flags can be used repeatedly to identify files that should be loaded first. For example:

$ mocha-server -r ./test/test-helper.js ./test/my-tests

Will load ./test/test-helper.js before it loads any of the tests found uncer ./test/my-tests.

Sprocket-style require

Alternatively, you can use sprockets style require directives to indicate depdencies. This functionality is supplied by snockets.

Adding Additional Javascript Compilers

Out of the box, mocha-server supports Javascript and coffeescript files through snockets. You can pass in additional compilers through the --compiler</code flag as follows:

$ mocha-server --compiler jade:./test/compilers/jade.js

Will compile all files with the .jade extension using the compiler defined in ./test/compilers/jade.js.

A compiler is made up of a match property that is regular-expression that indicates the files type returned and a compileSync function that will return the source generated.

Look under the spec/support for an example compiler.

mocha-server.opts

Much like mocha will attempt to load ./test/mocha.opts, mocha-server will attempt to load ./test/mocha-server.opts, concatenating the arguments to those passed on the command line. For example, suppose you have the following:

--require ./test/support
-h
test/assets

It will ensure the contents of test/support is loaded first, that the tests are run headlessly, and that all the tests in test/assets are run.

Running Headlessly

mocha-server uses mocha-phantomjs to run headlessly. You need to install PhantomJS v.1.7.0 or greater and then you can enter:

$ mocha-server --headless

Or:

$ mocha-server -h

This launches the server, then runs mocha-phantomjs against it. Several command-line arguments are passed through to it.

Examples

The files under test folder provide examples of writing tests for the system. You can run them by:

$ mocha-server

Contributing

Fork the repo, make a branch, add tests, make your changes, and submit a pull-request!

Testing

You can test mocha-server by cloning this repository and running:

$ cake test

This will run the tests under the spec folder.

Contributors