Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including grunt-speckjs with all npm packages installed. Try it out:

grunt-speckjs lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

require("grunt/package.json"); // grunt is a peer dependency. // require("grunt-speckjs/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

grunt-speckjs v1.0.1

Comment Driven Development

Build Status

grunt-speckjs

Comment Driven Development

Getting Started

This plugin requires Grunt ~0.4.5

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-speck --save-dev

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

grunt.loadNpmTasks('grunt-speck');

The "speck" task

Usage Examples

Single Task Setup Example

In this example, the default options are to specify a target with src files, specType, and an output destination. SpeckJS will search for comments in the source files, and then output specfiles for the specified test suite.

grunt.initConfig({
  speck: {
    options: {
      specType: 'tape',
      specName: '--testSpec',
      logs: false
    },
    target: {
      src: ['src/*.js'],
      dest: 'test/'
    },
  },
});

Multi Task Setup Example

You can also setup SpeckJS in multitask mode, for example if you would like to have a different subtask for bulding tape test and one for jasmine tests as in the following example:

grunt.initConfig({
  speck: {
    tape: {
      options: {
        testFW: 'tape',
        specName: '--tape-testSpec',
        logs: true
      },
      files: {
        'test/tape/': ['src/**/*.js']
      }
    },
    jasmine: {
      options: {
        testFW: 'jasmine',
        specName: '--jasmine-testSpec',
        logs: true
      },
      files: {
        'test/jasmine/': ['src/**/*.js']
      }
    }
  },
});

options

  • testFW: the test suite for shich SpeckJS will build.
  • specName: the file name output of the spec files <originalfilename><specName>.js
  • logs: output on console success/error messages

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free