• Solly Ross's avatar
    Support Running Mocha Tests from the Console · 2af86592
    Solly Ross authored
    Previously, the only way to run the Mocha tests
    (in 'test.*.js') is to write a web page to wrap
    them (or use a provided one), and then load that
    file in a browser.
    
    This commit introduces a series of files to allow
    you to run the Mocha tests from the command line
    instead.
    
    Normally, Mocha tests can be run from
    the command line anyway.  However, since this
    project was designed to work in web browsers
    and not node, the code doesn't contain the
    proper `require` calls, nor does it contain the
    proper `module.exports` declarations.  Additionally,
    some of the code is dependent on having a browser
    environment.
    
    To overcome these issues, a headless browser environment
    is used.  The command file introduced in the commit,
    `run_from_console.js`, can use one of two environments:
    ZombieJS, a pure-javascript headless browser simulator, or
    SpookyJS/CasperJS/PhantomJS, an actually WebKit-based
    environment.
    
    Because the environment-dependent code is separated
    out in to different files ('run_from_console.zombie.js'
    and 'run_from_console.casper.js'), the program can be
    safely used if only one of the supported environments
    is installed.
    
    Additionally, the command will automatically generate
    HTML and inject the required tests if there is no
    pre-existing HTML file (although you can still use
    pre-existing HTML files if you want to).
    
    The required NPM modules for the base program are:
    
    - commander
    - ansi
    - mocha (must be installed locally for the HTML files to use)
    - chai (must be installed locally for the HTML files to use)
    - temp
    
    For Zombie, you need:
    
    - zombie
    - q
    
    For Casper, you need:
    
    - casperjs (must be installed locally in order to work properly)
    - phantomjs
    - phantom
    - spooky
    
    The command itself can be invoked as
    
       $ node run_from_console.js -t html_files
    
    or
    
       $ node run_from_console.js -t js_test_files -i js_required_files
    
    In both cases, the 'files' options should be a comma-separated list of
    files.  The first case runs pre-existing HTML files.  The second case
    generates HTML files to run the specified Mocha tests, and injects
    the requirements specified as well.
    
    Additionally, there are extra arguments that apply to both forms:
    '-a' can be used to print all test results, not just the failures,
    '-c' may be used to force color to be enabled (when outputting to
    a pipe, such as when `less -R` is in use), and '-e' is used to
    set the environment.  Use the '-h' or '--help' options to see
    a detailed description of all options, and their long-form versions.
    2af86592
run_from_console.js 5.94 KB