debugger: Pass --nocapture to cargo tests when building debug tasks with locator (#32633)

Release Notes:

- Add --nocapture as a default argument when debugging rust tests

Co-authored-by: Cole Miller <m@cole-miller.net>
This commit is contained in:
Anthony Eid 2025-06-12 17:30:36 -04:00 committed by GitHub
parent 7d708c14e4
commit d725371c42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -57,10 +57,10 @@ impl DapLocator for CargoLocator {
}
match cargo_action.as_ref() {
"run" => {
"run" | "r" => {
*cargo_action = "build".to_owned();
}
"test" | "bench" => {
"test" | "t" | "bench" => {
let delimiter = task_template
.args
.iter()
@ -133,7 +133,10 @@ impl DapLocator for CargoLocator {
!executables.is_empty(),
"Couldn't get executable in cargo locator"
);
let is_test = build_config.args.first().map_or(false, |arg| arg == "test");
let is_test = build_config
.args
.first()
.map_or(false, |arg| arg == "test" || arg == "t");
let mut test_name = None;
if is_test {
@ -161,7 +164,10 @@ impl DapLocator for CargoLocator {
anyhow::bail!("Couldn't get executable in cargo locator");
};
let args = test_name.into_iter().collect();
let mut args: Vec<_> = test_name.into_iter().collect();
if is_test {
args.push("--nocapture".to_owned());
}
Ok(DebugRequest::Launch(task::LaunchRequest {
program: executable,