Coder Social home page Coder Social logo

muteor / grunt-mocha-phantomjs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jdcataldo/grunt-mocha-phantomjs

0.0 2.0 0.0 94 KB

A simple grunt wrapper for mocha-phantomjs to allow for ci integration

License: MIT License

JavaScript 78.18% HTML 21.82%

grunt-mocha-phantomjs's Introduction

grunt-mocha-phantomjs

A simple wrapper to run client-side mocha tests using mocha-phantomjs core library

Build Status Downloads

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-mocha-phantomjs --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-mocha-phantomjs');

The "mocha_phantomjs" task

Run this task with the grunt mocha_phantomjs command.

Task targets, files and options may be specified according to the grunt Configuring tasks guide.

PhantomJS is installed when installing using NPM.

Options

reporter

Type: String
Default: spec

The reporter that should be used. See the supported reporters for more information.

output

Type: String

The file that the task should output the results to. If output is specified, the task will always complete and not throw an error code if errors are found. The CI will determine if the build failed or not.

failWithOutput

Type: Boolean

Setting failWithOutput to true when used with the output option will fail a build along with creating a test artifact. This is useful for CIs (CircleCI) that don't fail a build based on the test artifact.

silent

Type: Boolean

Setting silent to true will prevent the results from being printed using stdout.

urls

Type: Array
Default: []

Absolute http:// or https:// urls to be passed to PhantomJS. Specified URLs will be merged with any specified src files first. Note that urls must be served by a web server, and since this task doesn't contain a web server, one will need to be configured separately. The grunt-contrib-connect plugin provides a basic web server.

Additional arguments may be passed. See mocha-phantomjs's usage.

phantomConfig

Type: Object Default: {}

Options to be passed directly to phantomjs. Eg:

{
    "--local-storage-path": "my/temp-phantom-files",
    "--local-storage-quota": "20480"
}

See phantomjs -h for more full options list.

config

Type: Object
Default: { useColors: true }

Options to be passed to mocha-phantomjs. See mocha-phantomjs-core's usage.

Usage examples

Basic usage (CI checks for error code)

// Project configuration.
grunt.initConfig({
  mocha_phantomjs: {
    all: ['test/**/*.html']
  }
});

File output for CI

// Project configuration.
grunt.initConfig({
  mocha_phantomjs: {
    options: {
      reporter: 'xunit',
      output: 'tests/results/result.xml'
    },
    all: ['test/**/*.html']
  }
});

Passing options to mocha-phantomjs

// Project configuration.
grunt.initConfig({
  mocha_phantomjs: {
    options: {
      reporter: 'xunit',
      output: 'tests/results/result.xml',
      config: {
        useColors: false,
        viewportSize: {
            width: 1024,
            height: 768
        },
        grep: 'pattern'
      }
    },
    all: ['test/**/*.html']
  }
});

Local server

Include the [grunt-contrib-connect plugin][] to run a local server [grunt-contrib-connect plugin]: https://github.com/gruntjs/grunt-contrib-connect

// Project configuration.
grunt.initConfig({
  mocha_phantomjs: {
    all: {
      options: {
        urls: [
          'http://localhost:8000/test/foo.html',
          'http://localhost:8000/test/bar.html'
        ]
      }
    }
  },
  connect: {
      server: {
        options: {
          port: 8000,
          base: '.',
        }
      }
    }
});

grunt.registerTask('test', ['connect', 'mocha_phantomjs']);

Notes

This is a very basic implementation of mocha-phantomjs. Failed tests and errors do not bubble up for custom reporting. The idea of this is to be mainly used by a CI and let the CI manage the error reporting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.