Skip to content

jveski/shelltest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)