Rust集成测试不能使用库

时间:2019-10-18 07:03:33

标签: rust rust-cargo nightly-build

正在努力将集成测试包含到我的项目中,但是我无法导入该库。我以为新规则可以让我只写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

1 个答案:

答案 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;

...

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