Rust 不同目录中函数的单元测试出现错误
我正在尝试为编写的GCD代码编写一个单元测试。我还试图为这个函数编写单元测试。测试是 这是项目的目录结构:Rust 不同目录中函数的单元测试出现错误,rust,rust-cargo,Rust,Rust Cargo,我正在尝试为编写的GCD代码编写一个单元测试。我还试图为这个函数编写单元测试。测试是 这是项目的目录结构: ProgrammingRust$树 . ├── 货锁 ├── 货舱 ├── 自述文件 ├── src │ ├── 第1章 │ │ ├── 命令行参数 │ │ └── gcd.rs │ └── 梅因 ├── 目标 │ ├── 调试 │ │ ├── └── 测验 ├── 第1章 └── gcd.rs 48个目录,108个文件 当我尝试运行测试时,出现以下
ProgrammingRust$树
.
├── 货锁
├── 货舱
├── 自述文件
├── src
│ ├── 第1章
│ │ ├── 命令行参数
│ │ └── gcd.rs
│ └── 梅因
├── 目标
│ ├── 调试
│ │ ├──
└── 测验
├── 第1章
└── gcd.rs
48个目录,108个文件
当我尝试运行测试时,出现以下错误:
错误[E0432]:未解析的导入`chapter1`
-->测试/gcd.rs:1:7
1 |使用第1章;
|^^^^^^^^根目录中没有'chapter1'
错误[E0425]:在此作用域中找不到函数“gcd”
-->测试/一般规格rs:10:20
|
10 |断言| eq!(gcd(15,14,1);
|^^^^在此范围内找不到
我想在
tests/gcd.rs
访问src/chapter1/gcd.rs
中的函数,但我不知道如何将函数gcd.rs
链接到tests
文件夹中的测试。在Rust中,存在于tests
目录下的测试被称为“黑盒”测试并将测试的板条箱视为extern
库。你想要的是
extern crate chapter1;
// ...
如果您想进行白盒测试(并有权访问私有成员),请创建一个仅在#[cfg(test)]
下编译的模块,如下所示:
#[cfg(test)]
mod tests {
#[test]
fn test_foo() {
// may use any `use` declaration as if this were any
// other module
use super::Something;
}
}
您还可以像普通模块一样创建一个文件,并且只包装相应的
mod
声明,如下所示:#[cfg(test)]mod tests代码>请在问题中包含相关代码(最好是a)。