我想删除运行测试用例时存在的数据库文件。所以我尝试了下面的代码,但失败了。你能告诉我这个错误的可能原因吗?
let db_path = Path::new("./tmp/data/data.mdb");
if db_path.is_file() {
dbg!(db_path.exists()); // db_path.exists() = true
dbg!(db_path.is_file()); // db_path.is_file() = true
dbg!(std::fs::metadata(db_path));
// Ok(
// Metadata {
// file_type: FileType(
// FileType {
// mode: 33152,
// },
// ),
// is_dir: false,
// is_file: true,
// permissions: Permissions(
// FilePermissions {
// mode: 33152,
// },
// ),
// modified: Ok(
// SystemTime {
// tv_sec: 1647472466,
// tv_nsec: 574985772,
// },
// ),
// accessed: Ok(
// SystemTime {
// tv_sec: 1647472466,
// tv_nsec: 274984150,
// },
// ),
// created: Ok(
// SystemTime {
// tv_sec: 1647472466,
// tv_nsec: 274984150,
// },
// ),
// ..
// },
std::fs::remove_file(db_path).unwrap(); // thread 'app::standalone_tests::test_db_created' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }'
}
Run Code Online (Sandbox Code Playgroud)