2.0.0 • Published 10 years ago
douglasduteil...shelltest v2.0.0
shelltest
JS acceptance testing framework for CLI applications.
Purpose
This framework is intended to serve as a friendly layer of abstraction for testing the stdout, stderr, and exit code of shell commands. It's like supertest, but for CLI apps.
Installation
npm install shelltest --saveExample
shelltest()
.cmd("/usr/bin/my_command")
.expect('stdout', /^regex.match/)
.end();With Mocha
it('should run the command', function(done){
  shelltest()
  .cmd("/usr/bin/my_command")
  .expect('stdout', /^match/)
  .expect(0)
  .end(done);
});API
.cmd(command)
Sets the command to be executed.
.cmd("/bin/my_command").expect(value, match)
Adds an assertion.  All assertions are evaluated when .end(fn) is called.
.expect('stderr', /^regex.match/) //Asserts stderr
.expect('stdout', 'string match') //Asserts stdout
.expect(0)                        //Asserts exit code.cwd(cwd)
Sets child_process cwd option.
.cwd('/var').env(env)
Sets child_process env option.
.env({"PATH": "/usr/cust:/usr/bin"}).timeout(timeout)
Sets child_process timeout option.
.timeout(10).uid(uid)
Sets child_process uid option.
.uid(0).gid(gid)
Sets child_process gid option.
.gid(0).end(fn)
Executes command and evaluates assertions. end() will throw with no callback.
Callback is fired with fn(err, stdout, stderr) :
- err: null or the assert or process error
- stdout: the output string
- stderr: the error string
.end(callback_function)2.0.0
10 years ago