mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
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
|
This flag will run your code examples as tests. For more, see [the chapter
|
||||||
on documentation tests](write-documentation/documentation-tests.md).
|
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
|
## `--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`.
|
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
|
## `--target`: generate documentation for the specified target triple
|
||||||
|
|
||||||
Using this flag looks like this:
|
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
|
This will include your README as documentation on the hidden struct `ReadmeDoctests`, which will
|
||||||
then be tested alongside the rest of your doctests.
|
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| {
|
stable("test-args", |o| {
|
||||||
o.optmulti("", "test-args", "arguments to pass to the test runner", "ARGS")
|
o.optmulti("", "test-args", "arguments to pass to the test runner", "ARGS")
|
||||||
}),
|
}),
|
||||||
unstable("test-run-directory", |o| {
|
stable("test-run-directory", |o| {
|
||||||
o.optopt(
|
o.optopt(
|
||||||
"",
|
"",
|
||||||
"test-run-directory",
|
"test-run-directory",
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
// revisions: correct incorrect
|
// revisions: correct incorrect
|
||||||
// check-pass
|
// check-pass
|
||||||
// [correct]compile-flags:--test --test-run-directory={{src-base}} -Zunstable-options
|
// [correct]compile-flags:--test --test-run-directory={{src-base}}
|
||||||
// [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage -Zunstable-options
|
// [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage
|
||||||
// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
|
// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
|
||||||
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
|
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user