summaryrefslogtreecommitdiff
path: root/crates/arti/tests/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'crates/arti/tests/README.md')
-rw-r--r--crates/arti/tests/README.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/crates/arti/tests/README.md b/crates/arti/tests/README.md
new file mode 100644
index 000000000..2259c4d28
--- /dev/null
+++ b/crates/arti/tests/README.md
@@ -0,0 +1,40 @@
+# Arti CLI tests
+
+This is a [`trycmd`]-based test suite for the arti CLI.
+
+Each testable subcommand has a corresponding directory in `testdata`:
+```
+tests
+├── cli_tests.rs # The test runner
+├── README.md
+└── testcases
+ ├── hsc
+ │   ├── help.stderr # expected stderr for the "help" test
+ │   ├── help.stdout # expected stdout for the "help" test
+ │   ├── help.toml # hsc "help" test
+ │   ├── hsc.in # test inputs and CWD
+ │   └── hsc.md # multiple hsc tests
+ ├── hss # hss subcommand tests
+ │   ├── hss.in # test inputs and CWD
+ │   └── hss.md # multiple hss tests
+ └── ...
+```
+
+Each feature-dependent subcommand has a corresponding `<subcmd>-feature-missing`
+test case, which tests that we output a hint about recompiling arti with the
+necessary features (the feature-dependent tests are currently all skipped,
+because we don't yet print helpful messages in such cases. See #1487).
+
+The tests can be written as [`*.trycmd`/`*.md` files], or in [`toml` format].
+The `*md`-based tests can double as documentation, so they are often preferable
+over the `toml` ones.
+
+See the [`trycmd`] docs for more information.
+
+### Debugging
+
+You can pass `-F trycmd/debug` to `cargo test` to debug `trycmd`'s behavior.`
+
+[`trycmd`]: https://docs.rs/trycmd/latest/trycmd/
+[`*.trycmd`/`*.md` files]: https://docs.rs/trycmd/latest/trycmd/#trycmd
+[`toml` format]: https://docs.rs/trycmd/latest/trycmd/#toml