Stabilize rustdoc --test-run-directory
This commit is contained in:
parent
cf32b9de1e
commit
2e924bbef3
@ -179,7 +179,7 @@ $ rustdoc src/lib.rs --test
|
||||
This flag will run your code examples as tests. For more, see [the chapter
|
||||
on documentation tests](write-documentation/documentation-tests.md).
|
||||
|
||||
See also `--test-args`.
|
||||
See also `--test-args` and `--test-run-directory`.
|
||||
|
||||
## `--test-args`: pass options to test runner
|
||||
|
||||
@ -194,6 +194,19 @@ For more, see [the chapter on documentation tests](write-documentation/documenta
|
||||
|
||||
See also `--test`.
|
||||
|
||||
## `--test-run-directory`: run code examples in a specific directory
|
||||
|
||||
Using this flag looks like this:
|
||||
|
||||
```bash
|
||||
$ rustdoc src/lib.rs --test --test-run-directory=/path/to/working/directory
|
||||
```
|
||||
|
||||
This flag will run your code examples in the specified working directory.
|
||||
For more, see [the chapter on documentation tests](write-documentation/documentation-tests.md).
|
||||
|
||||
See also `--test`.
|
||||
|
||||
## `--target`: generate documentation for the specified target triple
|
||||
|
||||
Using this flag looks like this:
|
||||
|
@ -443,3 +443,15 @@ pub struct ReadmeDoctests;
|
||||
|
||||
This will include your README as documentation on the hidden struct `ReadmeDoctests`, which will
|
||||
then be tested alongside the rest of your doctests.
|
||||
|
||||
## Controlling the compilation and run directories
|
||||
|
||||
By default, `rustdoc --test` will compile and run documentation test examples
|
||||
from the same working directory.
|
||||
The compilation directory is being used for compiler diagnostics, the `file!()` macro and
|
||||
the output of `rustdoc` test runner itself, whereas the run directory has an influence on file-system
|
||||
operations within documentation test examples, such as `std::fs::read_to_string`.
|
||||
|
||||
The `--test-run-directory` flag allows controlling the run directory separately from the compilation directory.
|
||||
This is particularly useful in workspaces, where compiler invocations and thus diagnostics should be
|
||||
relative to the workspace directory, but documentation test examples should run relative to the crate directory.
|
||||
|
@ -284,7 +284,7 @@ fn opts() -> Vec<RustcOptGroup> {
|
||||
stable("test-args", |o| {
|
||||
o.optmulti("", "test-args", "arguments to pass to the test runner", "ARGS")
|
||||
}),
|
||||
unstable("test-run-directory", |o| {
|
||||
stable("test-run-directory", |o| {
|
||||
o.optopt(
|
||||
"",
|
||||
"test-run-directory",
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
// revisions: correct incorrect
|
||||
// check-pass
|
||||
// [correct]compile-flags:--test --test-run-directory={{src-base}} -Zunstable-options
|
||||
// [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage -Zunstable-options
|
||||
// [correct]compile-flags:--test --test-run-directory={{src-base}}
|
||||
// [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage
|
||||
// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
|
||||
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user