Rust单测找不到文件
QBug Lifelong Learner

初学Rust, 在编写测试的时候看官方文档中说只需要写一个mod如下即可:

1
2
3
4
5
6
7
8
9
10
11
#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_sqrt() -> Result<(), String> {
let x = 4.0;
assert_eq!(x, 4.0);
Ok(())
}
}

而我在照做然后运行cargo test的时候却出现了running 0 tests的结果,搜索了一下发现原来是需要在main.rs中声明使用刚才定义的mod,解决方法是正在main.rs中加入mod tests即可。

附加内容: 引用其他路径下的文件

一般来说我们的单测会放在一个文件夹中,这里拿文件夹test举例。这个时候想要引用到文件夹内,或者说不是跟main.rs同一目录的文件时,我们需要给我们原本的mod语句加上一个宏来制定文件的路径,例如:

1
2
#[path ="./test/your_test_file.rs"]
mod your_test_mod;

TODOS

  • Post title:Rust单测找不到文件
  • Post author:QBug
  • Create time:2022-10-08 23:42:43
  • Post link:https://q-bug4.github.io/2022/10/08/Rust单测找不到文件/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.