Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
python unittest integration for jshint
Python
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src/unittest_jshint initial commit
.gitignore
MANIFEST.in
README.rst
setup.py

README.rst

Introduction

This package integrates JSHint with Python's `unittest`_ module. This package was inspired by gocept.jslint.

JSHint is a community-driven tool to detect errors and potential problems in JavaScript code and to enforce your team's coding conventions.

It provides a special JSHintTestCase class that collects JavaScript files (in a configurable manner) and dynamically generates a test method for each file that calls jslint on that file.

Usage

To use it, create a test class like this:

class MyPackageJSLintTest(unittest_jshint.JSHintTestCase):

    include = (
        'my.package.browser:js',
        'my.package.browser:js/lib',
        )

    options = ( 'curly', 'eqeqeq', )

include is a list of "resource paths" of the form packagename:path (passed to pkg_resources).

exclude can be a list of filenames (without path) that will not be collected.

options is a list of arguments that are passed to JSHint (see its documentation for details). The default value is:

options = ()

All files ending in .js contained in each of these paths will be collected, and the test class will grow a method named test_<filename>.js.

You can ignore JSHint error by setting ignore on the test class (a list of substrings that are matched against each JHLint output line):

ignore = (
    "Use a named parameter",
    )

Requirements

unittest_jshint was tested with:

  • Python 2.6 (unittest2 required)
  • Python 2.7

Currently I only test with Python versions that are used by Plone so it just might work for other Python versions.

unittest_jshint requires jshint to be in the PATH or providing customized environmental variable UNITTEST_JSHINT_COMMAND.

Contributors

  • Rok Garbas, garbas
Something went wrong with that request. Please try again.