如何在工作区中的Rust板条箱之间共享测试代码



我在一个工作区里有几个板条箱。一个板条箱定义了一个Trait,其他板条箱实现。我想写一些测试函数,这些函数只接受Trait,并确保所有不变量始终为真,并且示例代码可以与Trait的所有实例一起使用。所以我想定义一个测试套件,每个板条箱都应该说"我把我的测试定义为这个测试套件,用我自己的Trait实现"。这可能吗?

我想我可以在我的库中定义一个宏,该宏使用Trait实例生成所有测试,但这将混合库中的生产代码和测试代码。我工作区中的另一个机箱是否可以引用我主机箱的测试文件夹中的测试模块?

所以基本上我有:

workspace
|-- crate1
|-- src
|-- lib.rs
|-- tests
|-- harness.rs
|-- crate2
|-- src
|-- lib.rs
|-- tests
|-- test2.rs

我希望test2.rs能够使用harness.rs。这可能吗?

您可以使用path属性在板条箱之间共享代码:

#[path="../shared/my_utils.rs"]
mod utils;

最新更新