1 | #!/usr/bin/env node
|
2 |
|
3 | var path = require( 'path' );
|
4 | var coffee = require( 'coffee-script' );
|
5 | var CiaoScript = require( '../lib/CiaoScript' );
|
6 | var Runner = require( '../lib/Runner' );
|
7 | var Reporter = require( '../lib/Reporter' );
|
8 | var Documentor = require( '../lib/Documentor' );
|
9 | var Request = require( '../lib/Request' );
|
10 | var Settings = require( '../lib/Settings' );
|
11 | var Suite = require( '../lib/Suite' );
|
12 | var program = require('commander');
|
13 |
|
14 | program
|
15 | .version('0.0.16')
|
16 | .usage('[options] <file ...>')
|
17 | .option('-s, --silent', 'disable reporters')
|
18 | .option('-d, --documentation [dir]', 'generate documentation in output dir')
|
19 | .parse(process.argv);
|
20 |
|
21 | var suite = new Suite( function( filename, suite )
|
22 | {
|
23 | CiaoScript.load( filename, new Settings(), function( settings, parser )
|
24 | {
|
25 | var runner = new Runner( parser.sections.assert );
|
26 |
|
27 | // Set Reporter
|
28 | if( !program.silent ){
|
29 | runner.listener( Reporter.standard );
|
30 | // runner.listener( Reporter.debug );
|
31 | }
|
32 |
|
33 | // HTTP Request
|
34 | var http = new Request();
|
35 | http.listener( runner.complete );
|
36 |
|
37 | // Documentation
|
38 | if( program.documentation )
|
39 | {
|
40 | filename = path.resolve( filename );
|
41 | var docTarget = filename.replace( process.cwd(), process.cwd() + '/' + program.documentation );
|
42 | var docFile = docTarget.replace( '.coffee', '.md' );
|
43 | var documentation = new Documentor( parser.sections.request[0].title, docFile );
|
44 | runner.listener( documentation.documentTest );
|
45 | http.listener( documentation.documentTransaction );
|
46 | }
|
47 |
|
48 | // Send the Request
|
49 | http.transfer( settings.defaults );
|
50 | });
|
51 | });
|
52 |
|
53 | // Run script(s)
|
54 | if( program.args[0] ){
|
55 | suite.walk( program.args[0] );
|
56 | }
|
57 | else {
|
58 | program.help();
|
59 | } |
\ | No newline at end of file |