如何从 Rust 的 Cargo 中的集成测试访问二进制文件的函数

2024-03-20

在我的货运项目中,我定义了两个二进制目标。如何从集成测试访问二进制文件中定义的函数?

[package]
name = "passman"
version = "0.1.0"
edition = "2018"

[[bin]]
name = "passmand"
path = "src/daemon/main.rs"

[[bin]]
name = "passman"
path = "src/cli/main.rs"
.
├── Cargo.lock
├── Cargo.toml
├── README.md
├── src
│   ├── cli
│   │   ├── argument
│   │   │   └── mod.rs
│   │   └── main.rs
│   └── daemon
│       ├── entry_value.rs
│       ├── main.rs
│       ├── passman_crypto.rs
│       ├── passman.service
│       └── password_file.rs   <- i want to access functions defined in this
└── tests
    ├── password_file_tests.rs   <- this is my integration test
    └── test.py

我尝试使用以下方式访问该文件extern crate passmand;,但 Cargo 只是抱怨:

 --> tests/password_file_tests.rs:6:1
  |
6 | extern crate passmand;
  | ^^^^^^^^^^^^^^^^^^^^^^ can't find crate

就我而言,以下代码可以解决问题。

#[path = "../src/bin/some_bin.rs"]
mod some_bin;

use some_bin::XXX;

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

如何从 Rust 的 Cargo 中的集成测试访问二进制文件的函数 的相关文章

随机推荐

  • Ant 构建类路径 jar 生成“打开 zip 文件时出错”

    我有一个在 eclipse 中构建的项目 依赖于第 3 方 jar 我正在尝试为 ant 生成一个合适的构建文件 使用 Eclipses 内置的导出 gt ant 构建文件功能作为起始块 当我运行构建目标时 出现以下错误 javac err
  • Dotnet build 和 dotnet pack 生成不同的 nupkg

    这与这个问题 https stackoverflow com questions 76467763 cant use analyzer in nuget package an instance of analyzer cannot be c
  • Django 以 JSON 形式返回单个记录

    我创建了一个表单 用于在我们的网络管理中添加有关客户的注释 我正在使用 jQuery 和 Ajax 来提交 for 我希望 Django 视图返回新添加的注释 记录 以便我可以将其附加到客户注释表中 我的 Ajax 发送正在工作 并且正在保
  • 使用 php Imagemagick 调整图像大小

    我正在尝试使用 imagemagick 的函数 thumbnailImage 调整图像大小 现在 我之后没有对图像进行任何操作 只是回显新的尺寸以查看它是否有效 到目前为止 它还不起作用 这是我的代码 注意 它确实呼应了原始尺寸 但不是新尺
  • 如何让浏览器提示保存密码?

    嘿 我正在开发一个 Web 应用程序 它有一个登录对话框 其工作原理如下 用户点击 登录 登录表单 HTML 通过 AJAX 加载并显示在页面的 DIV 中 用户在字段中输入用户名 密码并单击提交 这不是一个
  • Django 过滤器测试

    class BusinessPartnerFilter SilBaseFilter active django filters BooleanFilter name date deactivated lookup expr isnull p
  • Drop 事件在 Chrome 中未触发

    似乎 drop 事件没有在我预期的时候触发 我假设当被拖动的元素释放到目标元素上方时 会触发 drop 事件 但情况似乎并非如此 我有什么误解吗 http jsfiddle net LntTL http jsfiddle net LntTL
  • 如果我在具有备用信任路径的链中的附加证书已过期,会发生什么情况?

    我有一个由 Sectigo 前 Comodo Positive SSL 产品 颁发的证书 状态良好 1年7个月后到期 该证书由 Sectigo RSA 域验证安全服务器 CA 颁发 CA 链中有两个中间证书 由供应商提供 最近的 Secti
  • Git 合并错误“无法提交,因为您有未合并的文件”

    我忘了git pull编辑之前我的代码 当我提交新代码并尝试推送时 出现错误 无法推送 那时我做了一个git pull这使得一些有冲突的文件突出显示 我删除了冲突 但我不知道从这里该做什么 我尝试过了git commit再次但它说 不可能提
  • ChartJS 如何设置X轴的最大标签?

    我从数组接收图表数据 其中存储了从 2016 年 1 月到 2018 年 12 月的日期 在图表中 它显示 3 年的所有月份 但我只需要展示1年 有任何想法吗 在这里 我传递一个数组并更改月份的单位 还有显示格式 chartHour con
  • JUnit 测试异常[重复]

    这个问题在这里已经有答案了 我对java真的很陌生 我正在构造函数上运行一些 JUnit 测试 构造函数是这样的 如果它的参数之一被赋予 null 或空字符串 它就会抛出异常 当我在 JUnit 中使用 null 或空字符串参数测试此构造函
  • 调用 save() 时 Django 模型不保存

    所以我试图保存 django 模型 由于某种原因我只收到 500 内部服务器错误 事情是 如果我评论 Social auth save 它可以工作并且我可以操纵 对象 但不保存它 为什么会发生这种情况 我正在使用 django tastyp
  • 是否有与 Add-MailboxPermission 等效的 REST(图形或其他)?

    现在我有一个 PS 脚本正在检查邮箱权限 如果缺少 则会添加权限 在 C 中 想调用以下等效项 获取邮箱权限 如果需要 添加权限 例如 添加MailboxPermission Identity email User AdminUserNam
  • 如何在 Bash 中重复一个字符?

    我怎样才能做到这一点echo perl E say x 100 您可以使用 printf 0s 1 100 这是如何运作的 Bash 扩展 1 100 所以命令变成 printf 0s 1 2 3 4 100 我已将 printf 的格式设
  • 如何使用 socket.io 将所有客户端重定向到另一个页面?

    我正在开发一款在线多人卡牌反人类游戏 React 在前面 React 路由器用于重定向 Node 在后面 当大厅中的一个用户时 我试图重定向 大厅 或房间中的所有客户端单击 开始 但现在只有单击开始的用户被重定向 这个想法是有人会设置一个新
  • 如何使用 scipy.spatial.Delaunay 将所有点包含到无错误三角网格中?

    我正在测试scipy spatial Delaunay并且无法解决两个问题 网格有错误 网格不包含所有点 代码和绘图图像 import numpy as np from scipy spatial import Delaunay delau
  • rsync 传输后删除发送端的文件

    我想从远程机器下载大量数据 我希望每次文件下载完成时都会删除远程计算机上的数据 我怎么做 rsync 是否有一个标志来执行此操作 您需要通过 remove source files的选项rsync命令 它说rsync从发送端删除属于传输一部
  • 如何配置 Jetty 在类更改时重新加载 WebAppContext

    我正在开发一个Web应用程序 当我在Eclipse下开发时 我运行Jetty作为开发和测试环境 当我对 Java 类进行更改时 Eclipse 会自动将它们编译到构建目录 但 Jetty 在我停止并启动服务器之前不会看到更改 我知道 Jet
  • Ant需要tools.jar但找不到它

    我正在为 Java 程序构建一个开发环境 在第一次尝试 Ant 构建脚本后 我收到了以下错误 Unable to locate tools jar Expected to find it in usr lib jvm java 6 open
  • 如何从 Rust 的 Cargo 中的集成测试访问二进制文件的函数

    在我的货运项目中 我定义了两个二进制目标 如何从集成测试访问二进制文件中定义的函数 package name passman version 0 1 0 edition 2018 bin name passmand path src dae