假设你有一个名为“dep”的依赖项,其中有两个名为f1和f2的特性。当我正常构建我的crate时,我想使用“dep”与f1功能,但在构建测试时要使用f2功能。我知道dev-dependencies是我们需要用于测试的依赖项,因此认为下面的Cargo.toml结构应该有效:
[dev-dependencies]
dep = { version = "1.0.0", features = ["f2"] }
[dependencies]
dep = { version = "1.0.0", features = ["f1"] }
然而,看起来一旦我用“f1”拉入“dep”,编译器将忽略在dev-dependencies部分提到的同一依赖项。另一方面,将依赖关系设置为“可选”的方式无法解决此问题,因为这样测试中将不会拉入“dep”。有任何解决此问题或绕过它的好方法吗?
PS:我注意到此问题正在此处跟踪:https://github.com/rust-lang/cargo/issues/7916。所以目前,我只能期待来自回答者的良好解决方法。
cargo test --all-features
运行测试。 - rodrigo