JS acceptance testing framework for CLI applications.
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.
npm install shelltest --save
shelltest()
.cmd("/usr/bin/my_command")
.expect('stdout', /^regex.match/)
.end();
it('should run the command', function(done){
shelltest()
.cmd("/usr/bin/my_command")
.expect('stdout', /^match/)
.expect(0)
.end(done);
});
Sets the command to be executed.
.cmd("/bin/my_command")
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
Sets child_process
cwd option.
.cwd('/var')
Sets child_process
env option.
.env({"PATH": "/usr/cust:/usr/bin"})
Sets child_process
timeout option.
.timeout(10)
Sets child_process
uid option.
.uid(0)
Sets child_process
gid option.
.gid(0)
Executes command and evaluates assertions. Callback is fired without arguments.
.end(callback_function)