From 85917e1be4d5ac81a13f48c57733bee691dd6888 Mon Sep 17 00:00:00 2001 From: HouXiaoxuan Date: Thu, 21 Dec 2023 00:03:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E6=9F=A5=E6=89=BE=E7=9A=84=E5=85=9C=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/util.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/utils/util.rs b/src/utils/util.rs index d2e2af5..30d086e 100644 --- a/src/utils/util.rs +++ b/src/utils/util.rs @@ -7,7 +7,26 @@ pub const TEST_DIR: &str = "mit_test_storage"; // 执行测试的储存库 fn setup_test_dir() { color_backtrace::install(); // colorize backtrace - let path = std::env::var("CARGO_MANIFEST_DIR").unwrap(); //获取项目根目录定位 + let cargo_path = std::env::var("CARGO_MANIFEST_DIR"); + let path: PathBuf = { + if cargo_path.is_err() { + // vscode DEBUG test没有CARGO_MANIFEST_DIR宏,手动尝试查找cargo.toml + let mut path = std::env::current_dir().unwrap(); + loop { + path.push("Cargo.toml"); + if path.exists() { + break; + } + if !path.pop() { + panic!("找不到CARGO_MANIFEST_DIR"); + } + } + path.pop(); + path + } else { + PathBuf::from(cargo_path.unwrap()) + } + }; let mut path = PathBuf::from(path); path.push(TEST_DIR); if !path.exists() {