2 个版本
0.1.1 | 2023 年 1 月 2 日 |
---|---|
0.1.0 | 2023 年 1 月 2 日 |
#614 在 Cargo 插件
28KB
451 行
cargo-is-tested
cargo-is-tested
是一种检查您的哪些项目已测试以及哪些未测试的方法,非常可配置,并提供了一个与 Git 钩子一起使用的脚本友好 API。
此外,它还使用 ✨ 美观的颜色 ✨ 来报告错误。
您还可以阅读手册以获得更友好的指南。
示例
检查当前目录中的所有函数是否已测试。
$ cargo is-tested .
# Cargo.toml
# [...]
[dependencies]
is_tested = "0.1.1" # Check crates.io for the current version of the crate.
# [...]
// src/main.rs
#! is-tested functions
// Yes, it uses shebangs to enable testing and flags!
use is_tested::is_tested;
#[is_tested("test/myfunction_testing_path.rs")]
fn my_function() {
// [...]
}
然后,它将检查 test/myfunction_testing_path.rs
文件是否存在,如果不存在,则输出错误。
如果文件存在,程序将对您的测试执行所有 lint 检查,以确保最佳质量。例如,lint emptiness
将检查您的函数是否不为空。
安装和使用
要开始使用 cargo-is-tested
,请安装二进制文件。
$ cargo install cargo-is-tested
现在 了解您可以在测试中应用的所有 lint。您还可以使用 strict
来激活它们所有(目前,推荐使用)
随着时间的推移,将添加更多 lint。
一旦您知道要应用哪些 lint,导入属性 is_tested
,然后选择一个结构体、函数或任何您想要测试的项目,并将该属性添加到该项目中,如下所示:
结果应该是这样的
#! is-tested strict
use is_tested::is_tested;
#[is_tested("tests/mystruct.rs")]
struct MyStruct<'a> {
string: &'a str
}
别担心,该属性不会更改您的代码,它只是为后续解析器提供一个标记,表示您正在测试该项目。
现在是运行解析器的时候了,它将读取检查所有测试项目是否都经过测试,并使用lints确定正确的代码质量。
// tests/mystruct.rs
use mycrate::MyStruct;
fn main() {
// [...]
}
$ cargo is-tested .
这将检查所有测试是否编写良好。您可以使用标志自定义您的体验,例如,使用--structs
检查所有结构体都有关联的测试,或者使用--test
,如果确认所有测试,则自动运行cargo test
。
星标关注者
许可证
cargo-is-tested
使用MIT许可证,2023。您可以通过LICENSE了解更多关于许可证的信息。
依赖
~4–16MB
~166K SLoC