7个版本
使用旧的Rust 2015
0.1.0 | 2018年10月15日 |
---|---|
0.0.6 | 2018年10月14日 |
在#doctest中排名8
每月下载量111
在 2 crates中使用
17KB
504 行
doubter
在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/
中的测试存档 内部。
替代方案
许可协议
doubter
在 MIT 许可协议 下发布。
依赖项
~2.5MB
~63K SLoC