Skip to content

run client-side Mocha tests with PhantomJS

Notifications You must be signed in to change notification settings

mrhooray/gulp-mocha-phantomjs

Repository files navigation

gulp-mocha-phantomjs Build Status Build status

run client-side Mocha tests with PhantomJS

a simple wrapper for mocha-phantomjs-core library

Warning

This project is no longer maintained.

Installation

node

$ npm install gulp-mocha-phantomjs --save-dev

Usage

<!DOCTYPE html>
<html>
    <head>
        <title>Mocha</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
    </head>
    <body>
        <script src="../node_modules/should/should.js"></script>
        <script src="../node_modules/mocha/mocha.js"></script>
        <script>mocha.setup('bdd')</script>
        <script>
            describe('true', function () {
                it('should be true', function () {
                    true.should.equal(true);
                });
            });
        </script>
        <script>
            mocha.run();
        </script>
    </body>
</html>
var gulp = require('gulp');
var mochaPhantomJS = require('gulp-mocha-phantomjs');

gulp.task('test', function () {
    return gulp
    .src('test/runner.html')
    .pipe(mochaPhantomJS());
});

Reporter can be chosen via reporter option:

gulp.task('test', function () {
    return gulp
    .src('test/runner.html')
    .pipe(mochaPhantomJS({reporter: 'spec'}));
});

Output of mocha tests can be piped into a file via dump option:

gulp.task('test', function () {
    return gulp
    .src('test/runner.html')
    .pipe(mochaPhantomJS({reporter: 'spec', dump:'test.log'}));
});

Test against remote by url:

gulp.task('test', function () {
    var stream = mochaPhantomJS();
    stream.write({path: 'http://localhost:8000/index.html'});
    stream.end();
    return stream;
});

Suppress PhantomJS’s console output:

gulp.task('test', function() {
    return gulp
    .src('test/runner.html')
    .pipe(mochaPhantomJS({
        suppressStdout: true,
        suppressStderr: true
    }));
});

Pass options to mocha and/or PhantomJS:

gulp.task('test', function () {
    return gulp
    .src('test/runner.html')
    .pipe(mochaPhantomJS({
        reporter: 'tap',
        mocha: {
            grep: 'pattern'
        },
        phantomjs: {
            viewportSize: {
                width: 1024,
                height: 768
            },
            useColors:true
        }
    }));
});

License

MIT