如何从测试目录中的文件访问 src 目录中的文件?

2024-03-06

我的项目布局如下所示:

src/
    int_rle.rs
    lib.rs
tests/
    test_int_rle.rs

该项目编译为cargo build,但我无法运行测试cargo test。我收到错误

error[E0432]: unresolved import `int_rle`. There is no `int_rle` in the crate root
 --> tests/test_int_rle.rs:1:5
  |
1 | use int_rle;
  |     ^^^^^^^

error[E0433]: failed to resolve. Use of undeclared type or module `int_rle`
 --> tests/test_int_rle.rs:7:9
  |
7 |         int_rle::IntRle { values: vec![1, 2, 3] }
  |         ^^^^^^^^^^^^^^^ Use of undeclared type or module `int_rle`

error: aborting due to 2 previous errors

error: Could not compile `minimal_example_test_directories`.

My code:

// src/lib.rs
pub mod int_rle;

// src/int_rle.rs

#[derive(Debug, PartialEq)]
pub struct IntRle {
    pub values: Vec<i32>,
}

// tests/test_int_rle.rs
use int_rle;

#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
        int_rle::IntRle { values: vec![1, 2, 3] }
    }
}

// Cargo.toml
[package]
name = "minimal_example_test_directories"
version = "0.1.0"
authors = ["Johann Gambolputty de von Ausfern ... von Hautkopft of Ulm"]

[dependencies]

有关的:如何在 Rust 中编译多文件 crate? https://stackoverflow.com/questions/17340985/how-do-i-compile-a-multi-file-crate-in-rust(如果测试文件和源文件位于同一文件夹中,该怎么做。)


文件src/int_rle.rs and src/lib.rs形成您的图书馆,并一起称为crate.

您的测试和示例文件夹不被视为包的一部分。这很好,因为当有人使用您的库时,他们不需要您的测试,他们只需要您的库。

您可以通过添加行来解决您的问题extern crate minimal_example_test_directories;到顶部tests/test_int_rle.rs.

您可以在书中阅读有关 Rust 的板条箱和模块结构的更多信息,here https://doc.rust-lang.org/book/crates-and-modules.html.

这应该是测试文件的工作版本:

// tests/test_int_rle.rs
extern crate minimal_example_test_directories;

pub use minimal_example_test_directories::int_rle;

#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
        super::int_rle::IntRle { values: vec![1, 2, 3] };
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从测试目录中的文件访问 src 目录中的文件? 的相关文章

随机推荐

  • WOWZA + RTMP + HTML5 播放?

    我有 Wowza 并测试 RTMP 流 现在就像 Wowza RTMP 示例一样 我现在可以 Playback via Flash http www wowza com gettingstarted http www wowza com g
  • 正则表达式 - 查找字符串中的特定数字

    我一整天都在与正则表达式作斗争 找不到解决方案 我试图在包含数字 分号 冒号和空格的字符串中找到一些特定的数字 出于我们的目的 假设我正在寻找号码1234 以下是一些应该匹配的示例 每一行都是不同的字符串 1234 1234 1234 56
  • 缺乏释放会导致什么样的问题?

    我目前遇到问题 glibc detected efit free invalid next size fast 0x00000000006127f0 带有通常的内存映射和回溯信息glibc错误 但是 我无法找到这个问题的原因 看起来 基本上
  • 我如何在 SQL SERVER 2008 中使用 Active Directory 用户进行身份验证但没有 Windows 身份验证

    在网上查阅了很多资料后 我找不到解决方案 我希望你理解我 我的英语不是最好的 Issue 我想使用域 活动目录 的有效用户对 SQL Server 进行身份验证 该用户是从我的应用程序 旧应用程序 的登录名 用户名和密码 中获取的 登录到我
  • Haskell 中带有元组参数的函数组合[重复]

    这个问题在这里已经有答案了 有时我有两种形式的函数 f a gt b1 b2 h b1 gt b2 gt c 我需要组合物 g 我通过将 h 更改为 h 来解决这个问题 h b1 b2 gt c 你能告诉我 如果可能的话 一个函数 m 吗
  • 卸载netbeans 7.0.1插件,netbeans无法启动

    安装 python 插件后 Vista 上的 Netbeans 7 0 1 无法启动 如何手动卸载插件 是否有命令行参数可以在没有插件的情况下启动netbeans 如果没有 这应该很容易添加到 netbeans 我遇到过同样的问题 这是我在
  • 如何使用pypyodb在python中正确连接到sql server

    当我输入代码时 connection pypyodbc connect driver SQL Server server ServerName database DatabaseName uid UserId pwd Password 我收
  • 包含 UTF-8 字符的批处理文件中的命令行参数会导致问题

    我编写了一个小实用程序 它采用路径作为命令行参数 但如果 且仅当 该参数是从批处理文件传递并包含 UTF 8 字符 如变音符号 时 不幸的是 这在以下情况下相当常见 我就会遇到麻烦 系统语言为德语 我可以从项目调试属性中传递带有元音变音的文
  • 使用公式R1C1内的变量进行抵消

    我有以下代码行 ActiveCell FormulaR1C1 sqrt RC 1 现在我想使用一个变量 例如 x 而不是 1 如下所示 ActiveCell FormulaR1C1 sqrt RC x 这会返回一个错误 我有什么办法可以做到
  • 如何更改 SwiftUI 中导航栏的背景颜色?

    我想更改导航栏的背景颜色 但我做错了什么 颜色看起来如此不同 My code UINavigationBar appearance backgroundColor red return VStack spacing 0 Text Test
  • 如何在 JS 中导出文件中的所有函数?

    我正在创建一个单位转换器 并且我想将所有转换函数放入它们自己的文件中 使用ES6export 有没有什么方法可以仅使用一行导出文件中的所有函数及其默认名称 例如 export default all 这些函数都只在文件中 而不是在对象内 不
  • 如果列为空,SQLiteCursor 会做什么?

    我想从 SQLite 查询返回的游标中获取一个整数 但我知道该整数可能为空 不幸的是 我找不到任何允许我检查这一点的 Cursor 方法 代码将是 mModifiedDate cursor getInt cursor getColumnIn
  • 如何将 libcurl 与 dev c++ 静态链接?

    最近我尝试将 libcurl 与 dev c 静态链接 我链接了除来自 libcurl 的 libcurldll a 文件之外的所有 a 文件 并且我定义了 CURL STATICLIB 但我收到了一些链接器错误 然后我在谷歌上搜索了这个链
  • Java POS 开发入门

    我有一个要求 需要从 Java Swing 应用程序连接到 POS 打印机 我了解到有一个名为 Java POS 的标准可以实现这一目标 现在问题出在java POS网站上 http www javapos com http www jav
  • 变换:翻译和位置:相对的区别;?

    正如标题所说 transform translate x y 和position relative之间有什么区别 既然它们都完成相同的事情 位置元素 那么它们在目的和应用方面有何不同 我读了一篇关于使用 transform translat
  • 线程本地存储GCC编译器

    我声明一个变量 thread int my id 我的平台和编译器的信息 Configured with src configure v with pkgversion Ubuntu Linaro 4 6 1 9ubuntu3 with b
  • 带两个参数的 python pandas 滚动函数

    我这个初学Python的人对Python的热爱正经受着艰难的考验 我需要在固定长度的滚动窗口中计算一个函数 假设 5 该函数需要两个参数 我很清楚答案here https stackoverflow com questions 256753
  • TypeError [ERR_UNKNOWN_FILE_EXTENSION]:Visual Studio Code 上的未知文件扩展名“.ts”

    我一直在对一些代码进行单元测试 似乎不知从何而来 我收到了有关未知文件扩展名的错误 之前 我收到了有关如何无法识别某些类型的错误 这是我的 package json name cgt core engine mv description A
  • 我们可以在 mysql 程序之外声明游标吗

    我无法声明游标 mysql中游标的意义是什么 declare c1 cursor for select name from record ERROR 1064 42000 您的 SQL 语法有错误 检查 与您的 MySQL 服务器版本相对应
  • 如何从测试目录中的文件访问 src 目录中的文件?

    我的项目布局如下所示 src int rle rs lib rs tests test int rle rs 该项目编译为cargo build 但我无法运行测试cargo test 我收到错误 error E0432 unresolved