2 个版本 (1 个稳定版本)
使用旧的 Rust 2015
1.0.0 | 2018 年 7 月 18 日 |
---|---|
0.1.0 | 2018 年 6 月 18 日 |
#1204 在 开发工具
在 cargo-culture 中使用
130KB
2.5K SLoC
cargo-culture-kit
概述
为 cargo-culture 项目提供核心库,该库为在 Rust 项目仓库上运行直接的检查提供了基本构建块。
这些检查的主要应用是作为包含并强制执行组织需求的最佳实践的命令行工具的一部分。
这些检查的次要应用是集成到 Rust 测试中。这可能对希望快速深度集成、不介意编写一些代码并希望避免使用支持程序的开发商有吸引力。
入门指南
依赖关系
cargo-culture-kit
是一个 Rust 项目,它使用 cargo
来管理依赖关系,它是 Rust 工具链的一部分。
构建
对于本地程序开发,您可以使用以下方式构建 cargo-culture-kit
- 下载项目仓库
git clone https://github.com/PolySync/cargo-culture.git cd cargo-culture/cargo-culture-kit
- 执行构建
cargo build
安装
您可以通过将 cargo-culture-kit
添加到您的 Cargo.toml 文件中来将其包含在您的 Rust 项目中。
- 添加到
[dependencies]
或 ``[dev-dependencies]` 部分cargo-culture-kit = "0.1"
使用方法
check_culture_default
是开始使用的一种简单方法,因为它提供了一个围绕核心 check_culture
函数的薄包装,并结合了 default_rules()
函数提供的 Rule
。 Rule
是该包的核心特质。一个 Rule
描述了项目的一个习惯或最佳实践,并提供了一种评估该规则是否得到遵守的方法。
use cargo_culture_kit::{check_culture_default, IsSuccess, OutcomeStats};
use std::path::PathBuf;
let cargo_manifest = PathBuf::from("../cargo-culture/Cargo.toml");
let verbose = false;
let outcomes = check_culture_default(
cargo_manifest, verbose, &mut std::io::stdout()
)
.expect("Unexpected trouble checking culture rules:");
let stats = OutcomeStats::from(outcomes);
assert!(stats.is_success());
assert_eq!(stats.fail_count, 0);
assert_eq!(stats.undetermined_count, 0);
示例
- 实现您自己的
Rule
的示例use cargo_culture_kit::{CargoMetadata, Rule, RuleContext, RuleOutcome} #[derive(Clone, Debug, PartialEq)] struct IsProjectAtALuckyTime; impl Rule for IsProjectAtALuckyTime { fn description(&self) -> &str { "Should be lucky enough to only be tested at specific times." } fn evaluate(&self, _context: RuleContext, ) -> RuleOutcome { use std::time::{SystemTime, UNIX_EPOCH}; let since_the_epoch = match SystemTime::now().duration_since(UNIX_EPOCH) { Ok(t) => t, Err(_) => return RuleOutcome::Undetermined, }; if since_the_epoch.as_secs() % 2 == 0 { RuleOutcome::Success } else { RuleOutcome::Failure } } }
测试
cargo-culture-kit
测试是通过标准 cargo 集成的 Rust 测试框架管理的,并通过 proptest 属性测试库进行了额外增强。
构建
构建但不运行测试
cargo build --tests
运行
构建并运行测试
cargo test
许可证
© 2018,PolySync Technologies,Inc。
- Zack Pierce 电子邮件
请参阅许可证文件获取更多详细信息
依赖关系
~3–12MB
~134K SLoC