正在努力将集成测试包含到我的项目中,但是我无法导入该库。我以为新规则可以让我只写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
答案 0 :(得分:0)
因此,我注意到OP says实际的Cargo.toml
与给定的匹配“除了[OP is] ...使用几个库。”
我认为造成问题的是库-如果您有库(使用不同的名称),则需要在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;
...
我有一个类似的错误消息,最初在搜索时找到了这篇文章,然后才意识到这个问题。因此,即使这不是原始海报的问题,也许此答案也可以帮助其他人...