2.0.0 • Published 10 years ago

shelltest v2.0.0

Weekly downloads
7
License
ISC
Repository
github
Last release
10 years ago

shelltest

Build Status npm version

JS acceptance testing framework for CLI applications. It's like supertest, but for CLI apps.

Purpose

This framework provides a simple means of executing shell commands and asserting on the results.

Installation

npm install shelltest --save

Example

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)