【发布时间】:2022-01-26 19:34:22
【问题描述】:
我的目标是将test-module(tests/) 写入现有的 rust 包。
我的包目录树类似于下面的example_package
example_package
|
├── Cargo.toml
├── src
│ ├── lib.rs
| ├── other_module.rs
│ ├── main.rs
└── tests
├── lib.rs
├── test1.rs
└── test_fixtures
├── mod.rs
├── test_fixture1.rs
└── test_fixture2.rs
这里
-
test-fixtures/- 是实际测试用例中常用测试输入的目录。 -
test1.rs- 是导入test-fixtures/并测试测试用例的实际测试用例。
但是当我尝试在test1.rs 中导入fixtures 时,如下所示
//tried all below three different ways
use crate::test_fixtures;
//use self::test_fixtures;
//use super::test_fixtures;
代码在编译时失败。
--> tests/test1.rs:2:5
|
2 | use crate::test_fixtures;
| ^^^^^^^^^^^^^^^^^^^^ no `test_fixtures` in the root
在属于tests/ 的另一个子模块中导入子模块的正确方法是什么?
代码:
// tests$ cat lib.rs
pub mod test_fixtures;
pub mod test1;
// tests$ cat test_fixtures/mod.rs
pub mod test_fixture1;
pub mod test_fixture2;
// tests$ cat test_fixtures/test_fixture1.rs
pub fn test_fixture1() {
print!("test_fixture1");
}
// tests$ cat test_fixtures/test_fixture2.rs
pub fn test_fixture2() {
print!("test_fixture2");
}
// tests$ cat test1.rs
use crate::test_fixtures;
//use self::test_fixtures;
//use super::test_fixtures;
pub fn test1() {
println!("running test1");
}
【问题讨论】:
标签: rust rust-cargo