#testing #cargo-subcommand #flaky #debugging #find #failure #record

app cargo-flaky

A cargo 子命令,帮助您查找测试套件中的不稳定测试

5 个不稳定版本

0.3.1 2021年6月15日
0.3.0 2021年6月14日
0.2.1 2021年6月8日
0.1.1 2021年6月3日

#407 in Cargo 插件

Download history 16/week @ 2024-03-09 13/week @ 2024-03-16 2/week @ 2024-03-23 22/week @ 2024-03-30 12/week @ 2024-04-06 7/week @ 2024-04-13 9/week @ 2024-04-20 3/week @ 2024-04-27 5/week @ 2024-05-04 9/week @ 2024-05-11 12/week @ 2024-05-18 9/week @ 2024-05-25 16/week @ 2024-06-01 15/week @ 2024-06-08 13/week @ 2024-06-15 21/week @ 2024-06-22

70 每月下载量

MIT 许可证

19KB
392 代码行

cargo flaky

Cargo flaky 扩展 cargo,帮助您在测试套件中查找不稳定测试,并帮助您解决它们。

动机

不稳定测试因其非常性质而闻名,令人烦恼且难以调试:它们似乎随机发生。Cargo flaky 的想法是运行测试很多次以尝试触发这些不稳定测试的失败。但这还不够,因为知道存在错误通常不足以调试它,cargo flaky 还允许您使用 rr 记录失败的测试,这样您可以在测试失败时回放测试的执行。不错。

安装

从源安装

git clone https://github.com/MarinPostma/cargo-flaky.github
cd cargo flaky
cargo install --path .

用法

目前,cargo flaky 不支持向测试套件传递自定义参数。

您可以多次运行所有测试

cargo flaky -i 30 # run your test suite 30 times and collect all failures

您可以记录失败的测试(需要已安装 rr

cargo flaky -i 30 -r # run your tests suite 30 time and record failures

输出

--- Found 1 failing test ---

test: test::test stdout, 10/10 (100%)
Test binary: /home/mpostma/Documents/code/rust/cargo-flaky/target/debug/deps/cargo_flaky-2ac6d6022fd
27a8d
message:
thread 'main' panicked at 'explicit panic', src/main.rs:231:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

recording available in : recording_20210603213043/record_iter_1
--------------------------------

现在,您可以运行 rr replay recording_20210603213043/record_iter_1 以打开一个 gdb 会话并调试失败的测试实例的记录。

您可以通过输入 cago flaky --help 获取更多用法信息。

免责声明

这仍然是一个正在进行中的项目,缺少许多功能。如果您缺少某些功能,请毫不犹豫地提交 PR/issue。

许可证

MIT

依赖项

~10–22MB
~305K SLoC