Crate for helping to test Rust dprint plugins.
This crate provides a helper function for running test specs defined in text files (for the API, see functions) in the documentation).
This allows you to write tests in the following format (example with TypeScript):
== description goes here == const u = 2; [expect] const u = 2;
For a real world example, see dprint-plugin-typescript/tests.
Changing File Name
By default, the file name used is the one provided to
ParseSpecOptions, but you can change the default file name used on a per test spec file basis by adding for example the following to the top of the file:
-- file.tsx --
To change the configuration, use the following at the top of the file and below the file name if provided:
~~ indentWidth: 2, useTabs: true ~~
Test Spec Description Helpers
You may change how all the tests are run by adding certain words to a test description:
(only)- Only runs this test.
(skip)- Skips running this test.
(skip-format-twice)- Skips formatting the output again to ensure it stays the same—only formats once.
(trace)- Only runs this test and outputs the IR graph to an HTML file to view in a web browser. Must be run with
cargo test --features tracing
For example, adding
(only) to the description will only run the first test in this example:
== test 1 (only) == const u = 2; [expect] const u = 2; == test 2 == console.log( 10 ) [expect] console.log(10);
Only Running Tests In A File
To only run tests in a single file, temporarily change the file name to add
_Only at the end before the extension. For example,
Sometimes a change may cause large test failures (ex. changing default space indentation from 4 spaces to 2 spaces). If you don't want to update all the tests manually, you can specify
fix_failures: true to
RunSpecsOptions when calling