7个版本

使用旧的Rust 2015

0.1.0 2018年10月15日
0.0.6 2018年10月14日

#doctest中排名8

Download history 4/week @ 2024-04-21 5/week @ 2024-06-02 1/week @ 2024-06-16 2/week @ 2024-06-23 5/week @ 2024-06-30 106/week @ 2024-07-28

每月下载量111
2 crates中使用

MIT协议

17KB
504

doubter

crates.io Docs.rs Master Doc Rustc Version

在Markdown文件中测试Rust代码块。

概述

此crate通过将代码块嵌入Rust源码并构建为crate来执行Markdown文件中的代码块。这种方法的优势在于,依赖项解析由cargo完成。这意味着与更新Rust工具链相关的依赖项问题不会发生。

入门

doubter将目标Markdown文件嵌入Rust代码作为公共文档注释。因此,需要为测试代码块创建一个新的crate,而与发布的crate分开。这些crate通常在[workspace.members]中注册。

使用过程宏

doubter的依赖项添加到Cargo.toml。如果代码块中需要一些外部crate,指定它们为[dev-dependencies]的成员。

[dependencies]
doubter = "0.1.0"

[dev-dependencies]
rand = "0.5"

然后,修改src/lib.rs以指定目标Markdown文件的路径。

#[macro_use]
extern crate doubter;

generate_doc_tests! {
    include = "README.md",
    include = "docs/**/*.md",
}

generate_doc_tests!(...)接受以逗号分隔的字段列表。目前支持的字段键如下

  • include - 字符串
    指向要测试的Markdown文件(s)路径的glob模式。必须是来自cargo的manifest目录的相对路径。必要。
  • mode - 字符串,可选
    将Markdown文件转换为doctest的模式。支持以下值
    • "raw"(默认): 将Markdown文件嵌入Rust源码原样
    • "extract":提取代码块并作为doctest按块输出。
  • use_external_doc - 字符串或布尔值,可选
    指定是否使用 #[doc(include = "...")] 来嵌入 Markdown 文件。当此选项启用时,mode 的值将被强制设置为 "raw"

目前,函数式过程宏的实现使用 proc-macro-hack。通过自定义派生定义过程宏有一些限制,且 use 样式的导入不按预期工作。您可以通过禁用功能标志 hack 将实现切换到 Macros 1.2(默认启用此功能标志)。

[dependencies.doubter]
version = "0.1.0"
default-features = false

示例

请参阅 crates/ 中的测试存档 内部

替代方案

许可协议

doubterMIT 许可协议 下发布。

依赖项

~2.5MB
~63K SLoC