Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cmdt

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cmdt

Command-line tool for testing command-line tools

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source
Avatar

Build Status Dependencies Status Coverage Status Published Version
npm Badge

Cmdt

Cmdt is a command-line tool for testing command-line tools.

This is handy for testing a command line execution result by checking its exit code and output. Commands will be executed in a temporary directory /tmp/cmdt--/ , this directory will be removed after all tests are completed unless -d/--debug flag is specified.

Installation

npm install -g cmdt

Usage

Run tests on specified test files:

cmdt run <file1>.yml <file2>.yml

Run all test files contained in a directory:

cmdt run <dir>

Debug exit code and output of failing tests, temporary directory will be logged and won't be removed at the end of the execution:

cmdt run --debug <file>.yml <dir>

Test File

Set test command, expected exit code and/or output regular expression in a .yml file:

- description: should display user name
  command: whoami
  exitcode: 0
  output: someuser

- command: time
  exitcode: 0
  output: real.+(\r\n?|\n)user.+
  stdout: real.+(\r\n?|\n)user.+

- command: unknowncommand
  exitcode: 1
  stderr: ^some error$

Parameters can also be specified, and used in test command:

- params:
    first_name: 'Theodore'
    last_name: 'Twombly'
    url: 'http://localhost'

- command: 'echo "Hey {first_name} {last_name}!"'
  exitcode: 0
  output: 'echo "Hey Theodore Twombly!"'

- command: 'wget {url}'
  exitcode: 0

Environment variables are available as _env parameter in test commands:

NAME="Theodore Twombly" cmdt run <file>.yml <dir>

- command: 'echo "Hello {_env.NAME}!"'
  exitcode: 0
  output: 'echo "Hello Theodore Twombly!"'

Test fixtures files and directories can be specified in fixtures array, which will then be copied to test execution directory:

# assuming path/to/data_dir/foobar.txt and path/to/another_dir/barfoo.txt exist
- fixtures:
  - path/to/data_dir
  - path/to/another_dir/barfoo.txt

- command: 'file foobar.txt'
  exitcode: 0

- command: 'file barfoo.txt'
  exitcode: 0

Test Fields

NameDescriptionMandatory
descriptiondescription of the testNo
commandcommand line to be executedYes
exitcodeexpected exit codeNo
outputstdout + stderr output, regexp matchingNo
stdoutstdout only output, regexp matchingNo
stderrstderr only output, regexp matchingNo

Screenshots

Success with directory arg screenshot Failure with file arg on debug mode screenshot

Colophon

Developer's Guide

Build reports:

Keywords

FAQs

Package last updated on 09 Aug 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc