rust - 什么是 Rust 系统测试?

标签 rust rust-cargo

sometimes see Rust crate 有一个名为 systest 的文件夹。我猜这个名字代表“系统测试”,但我找不到任何相关文档。

我的问题是:

  • systest 的目的是什么?只是测试一个 crate 是否编译正常,或者还测试另一个 crate 中的某些代码是否运行良好?
  • 编写systest 时要遵循哪些规则?它只是一个名为 systest 的文件夹中的箱子吗?
  • 为什么 systest/src 中的 lib.rs 似乎总是包含一个从 build 生成的文件 all.rs。 rs?

最佳答案

systest 不是 Rust 或 Cargo 中使用的标准名称。但是,这是 ctest 的文档建议的名称。 ,它对 FFI 绑定(bind)执行自动测试。 build.rs 使用 ctest 生成包含测试的 all.rs 文件,该文件包含在主文件中。

根据文档,生成的测试包括确保所有函数签名、常量值、结构布局/对齐、类型大小/对齐等都匹配它们的 C 等价物。

关于rust - 什么是 Rust 系统测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47694085/

相关文章:

windows - 无法从 WinApi crate 调用 CryptDecrypt,因为它找不到模块

json - 使用 serde_json 反序列化 JSON 根数组

rust - 用 Rust 进行单元测试

pointers - crossbeam_epoch::Shared::as_raw由 “Converts the pointer to a raw pointer (without the tag)”表示什么?

closures - 将 spawn 的调用者与 spawned 过程分离的最佳方法是什么?

rust - Rust 程序如何从其 Cargo 包中访问元数据?

rust - 是否可以让 Cargo 始终显示警告?

syntax - 奇怪的语法错误 'error: expected one of ` ,` or ` :`, found ` else`'

rust - 如何调试卡在 `cargo build` 处的 "Updating crates.io index"?

rust - 只写一个字节的便捷方法