#!/usr/bin/env node var path = require( 'path' ); var coffee = require( 'coffee-script' ); var CiaoScript = require( '../lib/CiaoScript' ); var Runner = require( '../lib/Runner' ); var Reporter = require( '../lib/Reporter' ); var Documentor = require( '../lib/Documentor' ); var Request = require( '../lib/Request' ); var Settings = require( '../lib/Settings' ); var Suite = require( '../lib/Suite' ); var program = require('commander'); program .version('0.0.16') .usage('[options] ') .option('-s, --silent', 'disable reporters') .option('-d, --documentation [dir]', 'generate documentation in output dir') .parse(process.argv); var suite = new Suite( function( filename, suite ) { CiaoScript.load( filename, new Settings(), function( settings, parser ) { var runner = new Runner( parser.sections.assert ); // Set Reporter if( !program.silent ){ runner.listener( Reporter.standard ); // runner.listener( Reporter.debug ); } // HTTP Request var http = new Request(); http.listener( runner.complete ); // Documentation if( program.documentation ) { filename = path.resolve( filename ); var docTarget = filename.replace( process.cwd(), process.cwd() + '/' + program.documentation ); var docFile = docTarget.replace( '.coffee', '.md' ); var documentation = new Documentor( parser.sections.request[0].title, docFile ); runner.listener( documentation.documentTest ); http.listener( documentation.documentTransaction ); } // Send the Request http.transfer( settings.defaults ); }); }); // Run script(s) if( program.args[0] ){ suite.walk( program.args[0] ); } else { program.help(); }