我在一个工作区中有几个板条箱。一个 crate 定义了一个 Trait,其他人实现了它。我想编写一些测试函数,它们只采用 Trait 并确保所有不变量始终为真,并且示例代码适用于 Trait 的所有实例。所以我想定义一个测试套件,并且每个箱子都应该说“我将我的测试定义为这个测试套件,具有我自己的 Trait 实现”。那可能吗?
我想我可以在我的库中定义一个宏,它使用 Trait 实例生成所有测试,但这会在我的库中混合生产和测试代码。我工作区中的另一个 crate 可以引用我的主 crate 的 tests 文件夹中存在的测试模块吗?
所以基本上我有:
workspace
|-- crate1
|-- src
|-- lib.rs
|-- tests
|-- harness.rs
|-- crate2
|-- src
|-- lib.rs
|-- tests
|-- test2.rs
Run Code Online (Sandbox Code Playgroud)
我希望test2.rs能够使用harness.rs. 那可能吗?
您可以使用path属性在板条箱之间共享代码:
#[path="../shared/my_utils.rs"]
mod utils;
Run Code Online (Sandbox Code Playgroud)