#command #assert #duct #test #cli-test #cli

dev bin+lib assert_cmd

测试 CLI 应用程序

42 个版本 (26 个稳定版)

2.0.16 2024 年 8 月 9 日
2.0.15 2024 年 7 月 25 日
2.0.14 2024 年 2 月 19 日
2.0.12 2023 年 7 月 14 日
0.6.0 2018 年 7 月 19 日

#26 in 测试

Download history 137623/week @ 2024-05-03 144391/week @ 2024-05-10 139695/week @ 2024-05-17 145225/week @ 2024-05-24 152290/week @ 2024-05-31 137587/week @ 2024-06-07 148996/week @ 2024-06-14 149515/week @ 2024-06-21 156293/week @ 2024-06-28 223652/week @ 2024-07-05 243698/week @ 2024-07-12 237075/week @ 2024-07-19 245783/week @ 2024-07-26 226212/week @ 2024-08-02 268803/week @ 2024-08-09 285596/week @ 2024-08-16

每月下载量 1,074,734
用于 1,388 个 Crates (1,328 直接使用)

MIT/Apache

89KB
1.5K SLoC

assert_cmd

Assert process::Command - 简化命令初始化和断言。

Documentation License Crates Status

assert_cmd 旨在简化 CLI 集成测试的过程,包括

  • 查找您的 crate 的二进制文件进行测试
  • 断言您的程序运行的结果。

示例

以下是一个简单的示例

use assert_cmd::Command;

let mut cmd = Command::cargo_bin("bin_fixture").unwrap();
cmd.assert().success();

有关更多信息,请参阅 文档

相关 Crates

其他可能有助于测试命令行程序的 Crates。

  • escargot 用于配置 crate 的二进制文件。
  • duct 用于编排多个进程。
  • rexpect 用于测试交互式程序。
  • assert_fs 用于文件系统设置和断言。
  • dir-diff 用于测试文件副作用。
  • cross 用于跨平台测试。

许可证

根据您的选择,许可如下

客户评价

fitzgen

每次使用 assert_cmd 都很愉快,我再次坠入爱河

bravo bravo WG-cli

passcod

在许多情况下,运行命令和处理输出都很复杂,因此 assert_cmd 的平滑功能非常优秀,非常受欢迎,并且显著提高了用户体验。

volks73

我已在其他项目中使用了 [assert_cmd],并且对其非常满意。

coreyja

到目前为止,[assert_cmd] 几乎就是我的测试策略,尽管我的测试应用程序相当小。

这个库使得在我的项目中添加测试覆盖率变得非常容易,即使我只是在学习如何编写 Rust!

贡献

除非您明确声明,否则您提交给作品中的任何有意贡献,如 Apache-2.0 许可证所定义,将按照上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~0.7–1MB
~15K SLoC