9 个版本 (3 个稳定版)
1.2.0 | 2020 年 4 月 30 日 |
---|---|
1.1.0 | 2020 年 4 月 30 日 |
1.0.0 | 2019 年 10 月 23 日 |
1.0.0-alpha.1 | 2019 年 9 月 25 日 |
#742 in 测试
每月 39 次下载
用于 2 crates
50KB
1K SLoC
批量运行
batch_run
是一组 Rust 源文件的运行器,基于 dtolnay 的 trybuild
。当您有一堆不是足够复杂以至于可以打包到专用 crates 中的 Rust 源文件时,它可能很有用,这些文件(根据其意义)不仅仅是集成测试用例。它还可以检查输出正确性,无论是在编译时(对于 compile_fail
用例)还是运行时(对于 run_pass
用例)。
[dependencies]
batch_run = "1.0"
编译器支持:需要 rustc 1.31+
编译失败用例
一个最小的 batch_run 设置看起来像这样
fn main() {
let b = batch_run::Batch::new();
b.compile_fail("batches/ui/*.rs");
match b.run() {
Ok(()) => {},
Err(err) => println!("{:?}", err)
};
}
此程序将分别编译与 glob 模式匹配的每个源文件,期望它们无法编译,并断言编译器的错误信息与相邻命名的 *.stderr 文件中的预期输出(与测试文件具有相同的名称,但扩展名不同)匹配。如果不匹配,程序将打印错误信息,比较预期与实际的编译器输出。
在项目的 Cargo.toml 中列出的 [dependencies] 和
[dev-dependencies]
下的依赖项可以在批处理内部访问,就像在普通的 cargo run
一样。
一个编译失败但未能编译失败的用例也是一个失败。
运行通过用例
在运行通过用例中,我们不仅检查代码能否编译,而且还实际运行它,并将 stdout/stderr 输出与相应的 *.stdout/*.stderr 文件匹配。
您可以在一个批处理中混合 compile_fail 和 run_pass 用例
fn main() {
let t = batch_run::Batch::new();
t.run_pass("batches/01-parse-header.rs");
t.run_pass("batches/02-parse-body.rs");
t.compile_fail("batches/03-expand-four-errors.rs");
t.run_pass("batches/04-paste-ident.rs");
t.run_pass("batches/05-repeat-section.rs");
}
详细信息
这是整个 API。
工作流程
(待办事项)
许可证
根据您的选择,许可为 Apache 许可证第 2 版 或 MIT 许可证。除非您明确声明,否则根据Apache-2.0许可证定义的您提交给本仓库的任何有意贡献,应双许可如上,不附加任何额外条款或条件。
依赖项
约2-10MB
约102K SLoC