mirror of
https://github.com/kbwo/testing-language-server.git
synced 2025-08-03 23:28:14 +00:00
chore(adapter): write both of stdout and stderr to log
This commit is contained in:
parent
b08c350b78
commit
daa8db434c
5 changed files with 15 additions and 10 deletions
|
@ -77,18 +77,18 @@ impl Runner for CargoNextestRunner {
|
|||
.args(tests)
|
||||
.output()
|
||||
.unwrap();
|
||||
let output = test_result;
|
||||
write_result_log("cargo_nextest.log", &output)?;
|
||||
let Output {
|
||||
stdout,
|
||||
stderr,
|
||||
status,
|
||||
..
|
||||
} = test_result;
|
||||
} = output;
|
||||
let unexpected_status_code = status.code().map(|code| code != 100);
|
||||
if stdout.is_empty() && !stderr.is_empty() && unexpected_status_code.unwrap_or(false) {
|
||||
return Err(LSError::Adapter(String::from_utf8(stderr).unwrap()));
|
||||
}
|
||||
let test_result = String::from_utf8(stderr)?;
|
||||
write_result_log("cargo_nextest.log", &test_result)?;
|
||||
let diagnostics: RunFileTestResult = parse_diagnostics(
|
||||
&test_result,
|
||||
PathBuf::from_str(&workspace_root).unwrap(),
|
||||
|
|
|
@ -74,12 +74,13 @@ impl Runner for CargoTestRunner {
|
|||
.args(tests)
|
||||
.output()
|
||||
.unwrap();
|
||||
let Output { stdout, stderr, .. } = test_result;
|
||||
let output = test_result;
|
||||
write_result_log("cargo_test.log", &output)?;
|
||||
let Output { stdout, stderr, .. } = output;
|
||||
if stdout.is_empty() && !stderr.is_empty() {
|
||||
return Err(LSError::Adapter(String::from_utf8(stderr).unwrap()));
|
||||
}
|
||||
let test_result = String::from_utf8(stdout)?;
|
||||
write_result_log("cargo_test.log", &test_result)?;
|
||||
let diagnostics: RunFileTestResult = parse_diagnostics(
|
||||
&test_result,
|
||||
PathBuf::from_str(&workspace_root).unwrap(),
|
||||
|
|
|
@ -183,12 +183,12 @@ impl Runner for DenoRunner {
|
|||
.args(&file_paths)
|
||||
.output()
|
||||
.unwrap();
|
||||
write_result_log("deno.log", &output)?;
|
||||
let Output { stdout, stderr, .. } = output;
|
||||
if stdout.is_empty() {
|
||||
return Err(LSError::Adapter(String::from_utf8(stderr).unwrap()));
|
||||
}
|
||||
let test_result = String::from_utf8(stdout)?;
|
||||
write_result_log("deno.log", &test_result)?;
|
||||
let diagnostics: RunFileTestResult = parse_diagnostics(
|
||||
&test_result,
|
||||
PathBuf::from_str(&workspace).unwrap(),
|
||||
|
|
|
@ -251,19 +251,19 @@ impl Runner for GoTestRunner {
|
|||
let file_paths = args.file_paths;
|
||||
let default_args = ["-v", "-json", "", "-count=1", "-timeout=60s"];
|
||||
let workspace = args.workspace;
|
||||
let test_result = std::process::Command::new("go")
|
||||
let output = std::process::Command::new("go")
|
||||
.current_dir(&workspace)
|
||||
.arg("test")
|
||||
.args(default_args)
|
||||
.args(args.extra)
|
||||
.output()
|
||||
.unwrap();
|
||||
let Output { stdout, stderr, .. } = test_result;
|
||||
write_result_log("go.log", &output)?;
|
||||
let Output { stdout, stderr, .. } = output;
|
||||
if stdout.is_empty() && !stderr.is_empty() {
|
||||
return Err(LSError::Adapter(String::from_utf8(stderr).unwrap()));
|
||||
}
|
||||
let test_result = String::from_utf8(stdout)?;
|
||||
write_result_log("go.log", &test_result)?;
|
||||
let diagnostics: RunFileTestResult = parse_diagnostics(
|
||||
&test_result,
|
||||
PathBuf::from_str(&workspace).unwrap(),
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use std::collections::{HashMap, HashSet};
|
||||
use std::io;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::process::Output;
|
||||
use std::str::FromStr;
|
||||
use std::sync::LazyLock;
|
||||
|
||||
|
@ -292,7 +293,10 @@ pub fn resolve_path(base_dir: &Path, relative_path: &str) -> PathBuf {
|
|||
PathBuf::from_iter(components)
|
||||
}
|
||||
|
||||
pub fn write_result_log(file_name: &str, content: &str) -> io::Result<()> {
|
||||
pub fn write_result_log(file_name: &str, output: &Output) -> io::Result<()> {
|
||||
let stdout = String::from_utf8(output.stdout.clone()).unwrap();
|
||||
let stderr = String::from_utf8(output.stderr.clone()).unwrap();
|
||||
let content = format!("stdout:\n{}\nstderr:\n{}", stdout, stderr);
|
||||
let log_path = LOG_LOCATION.join(file_name);
|
||||
std::fs::write(&log_path, content)?;
|
||||
Ok(())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue