Rust 集成测试不能"使用"库



正在努力将集成测试包含在我的项目中,但我无法导入库。我以为新规则会允许我只写一个use声明,但它进展得不是很顺利:)

下面的代码显示了相关组件。这不应该是有效的吗?

Cargo.toml

[package]
name = "myswankynewpackage"
version = "0.1.0"
authors = ["Me Myself <me.myself@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

tests/tests.rs

use myswankynewpackage;
// Also tried extern crate
// extern crate myswankynewpackage;
#[cfg(test)]
mod integration {
use super::*;
mod module{
#[test]
fn module_test() {
}
}
}

我收到一条错误消息,说找不到板条箱

error[E0432]: unresolved import `myswankynewpackage`
--> tests/tests.rs:1:5
|
1 | use myswankynewpackage;
|     ^^^^^^^^^^^^^^^^^^ no `myswankynewpackage` external crate

所以,我注意到 OP 说实际Cargo.toml与给定的"除了 [OP 是] ......使用几个库。

我认为导致问题的是库 - 如果您有库(名称不同(,则需要在use语句中使用库的名称。 即:

Cargo.toml

[package]
name = "myswankynewpackage"
version = "0.1.0"
authors = ["Me Myself <me.myself@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
tests/tests.rs
[lib]
name = "myswankynewlib"
path = "src/lib.rs"

tests/tests.rs

// WRONG!
// use myswankynewpackage;
// RIGHT!
use myswankynewlib;
...

我有一个类似的错误消息,最初是在我意识到这个问题之前搜索时找到这篇文章的。 所以即使这不是原始海报的问题,也许这个答案会对其他人有所帮助......

相关内容

  • 没有找到相关文章

最新更新