This monorepo contains the code for Text-Runner and its standard library.
You need to have these tools installed:
- Node.js version 10 or later
- Yarn
- Gnu Make - the
makecommand should exist on your machine - to see code statistics: scc
To get the codebase into a runnable state after cloning:
make setupto install dependencies
- text-runner-engine: implements the Text-Runner functionality as a library
- text-runner-cli: a CLI wrapper around the Text-Runner engine, to call Text-Runner in a shell
- text-runner-features: end-to-end tests for Text-Runner
The other folders are Text-Runner plugins or utility folders.
All codebases in this mono-repo provide a standardized set of commands for executing common development tasks. You must run these commands in the directory of the respective codebase.
- run all tests:
make test - run unit tests:
make unit - run end-to-end tests:
make cuke - run documentation tests:
make doc - run linters:
make lint - run auto-fixers:
make fix
To enable debugging statements and verbose output while debugging an end-to-end
test, add the @debug Gherkin tag in the first line of the .feature file.
To debug Text-Runner in VSCode:
- switch VSCode to the debug view
- start the
run text-runnerprofile
To debug a unit test:
- set a breakpoint in the unit test
- switch VSCode to the debug view
- start the
unitprofile
To debug a Cucumber step implementation in VSCode:
- open
.vscode/launch.json - edit the
cuke current filesection:- args
- cwd
- set a breakpoint inside Cucumber code
- switch VSCode to the debug view
- start the
cuke current fileprofile
make update
Always update the dependencies for all codebases so that they use the exact same versions.
- on a branch:
- update CHANGELOG.md
yarn run json-schema && make fixin the root folder- bump the versions by running one of:
lerna version patch --no-privatelerna version minor --no-privatelerna version major --no-private
- make a global search-and-replace for
7.5.0and0.7.0replace with the new versions - ship this branch
git town sync --all && git tag 7.5.0 && git push --tags- run
make publish