mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 06:41:48 +00:00
17470 - run test explorer tests at the package level and add missing extra_test_bin_args settings
This commit is contained in:
parent
a46788318c
commit
20d3237dfa
3 changed files with 54 additions and 10 deletions
|
@ -24,7 +24,7 @@ pub mod project_json;
|
|||
mod test_runner;
|
||||
|
||||
use command::{CommandHandle, ParseFromLine};
|
||||
pub use test_runner::{CargoTestHandle, CargoTestMessage, TestState};
|
||||
pub use test_runner::{CargoTestHandle, CargoTestMessage, TestState, TestTarget};
|
||||
|
||||
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
|
||||
pub enum InvocationStrategy {
|
||||
|
|
|
@ -59,19 +59,38 @@ pub struct CargoTestHandle {
|
|||
}
|
||||
|
||||
// Example of a cargo test command:
|
||||
// cargo test --workspace --no-fail-fast -- module::func -Z unstable-options --format=json
|
||||
// cargo test --workspace --no-fail-fast -- -Z unstable-options --format=json
|
||||
// or
|
||||
// cargo test --package my-package --no-fail-fast -- module::func -Z unstable-options --format=json
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum TestTarget {
|
||||
Workspace,
|
||||
Package(String),
|
||||
}
|
||||
|
||||
impl CargoTestHandle {
|
||||
pub fn new(
|
||||
path: Option<&str>,
|
||||
options: CargoOptions,
|
||||
root: &AbsPath,
|
||||
test_target: TestTarget,
|
||||
sender: Sender<CargoTestMessage>,
|
||||
) -> std::io::Result<Self> {
|
||||
let mut cmd = Command::new(Tool::Cargo.path());
|
||||
cmd.env("RUSTC_BOOTSTRAP", "1");
|
||||
cmd.arg("test");
|
||||
cmd.arg("--workspace");
|
||||
|
||||
match &test_target {
|
||||
TestTarget::Package(package) => {
|
||||
cmd.arg("--package");
|
||||
cmd.arg(package);
|
||||
}
|
||||
TestTarget::Workspace => {
|
||||
cmd.arg("--workspace");
|
||||
}
|
||||
};
|
||||
|
||||
// --no-fail-fast is needed to ensure that all requested tests will run
|
||||
cmd.arg("--no-fail-fast");
|
||||
cmd.arg("--manifest-path");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue