Skip to content
forked from jveski/shelltest

Acceptance testing framework for CLI applications

License

Notifications You must be signed in to change notification settings

yarikos/shelltest

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shelltest

Build Status npm version

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 --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. Callback is fired without arguments.

.end(callback_function)

About

Acceptance testing framework for CLI applications

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%