test helpers for oclif CLIs
See the V4 Migration Guide if you are migrating from v3 or older.
@oclif/test
provides a handful of utilities that make it easy to test your oclif CLI.
Note
In order for these utilities to capture all output to the terminal, you must disable any console output interception/suppression features in your test framework.
- For Jest users, enable the
verbose
flag in your Jest config. - For Vitest users, enable the
disableConsoleIntercept
flag in your Vitest config.
captureOutput
allows you to get the stdout, stderr, return value, and error of the callback you provide it. This makes it possible to assert that certain strings were printed to stdout and stderr or that the callback failed with the expected error or succeeded with the expected result.
Options
print
- Print everything that goes to stdout and stderr.stripAnsi
- Strip ansi codes from everything that goes to stdout and stderr. Defaults to true.testNodeEnv
- Sets theNODE_ENV
value when capturing output. Defaults to'test'
.
See the tests for example usage.
runCommand
allows you to get the stdout, stderr, return value, and error of a command in your CLI.
See the tests for example usage.
runHook
allows you to get the stdout, stderr, return value, and error of a hook in your CLI.
See the tests for example usage.