shelltest
v2.0.0
Published
Acceptance testing framework for CLI applications
Downloads
9,085
Maintainers
Readme
shelltest
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 errorstdout
: the output stringstderr
: the error string
.end(callback_function)