2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 5 月 8 日 |
---|---|
0.1.0 | 2018 年 2 月 26 日 |
#59 in #代码片段
11KB
148 代码行
blocktest
blocktest
是一个用于标记(例如 Markdown 或 reStructuredText)代码块的 "预处理器"。它允许您在不重复工作的情况下保持代码和散文的分离。这个想法很简单:blocktest
从更大的测试上下文中提取您的代码示例,并将其添加到用户指定的位置。
例如,假设您正在编写这个 spaCy 文档的部分。在这个例子中,您想在说明中包含以下 Python 代码片段
doc = nlp(u'An example sentence. Another sentence.')
assert (doc[0].text, doc[0].head.tag_) == ('An', 'NN')
使用 blocktest
,您需要两个文件
-
包含代码片段的 Python 测试文件
# test_language.py import spacy nlp = spacy.load('en') def test_example(): doc = nlp(u'An example sentence. Another sentence.') # example1 begin assert (doc[0].text, doc[0].head.tag_) == ('An', 'NN') # example1 end
-
指定如何找到代码片段的标记文件
<!-- example.md --> ```python {{< id="example1" src="test_language.py" >}} ```
blocktest
将扫描 example.md
,寻找 块定义,这些定义指定每个代码片段的唯一 ID 和源文件。然后它将从源文件中提取代码片段(由 <id> begin
/ <id> end
注释指示),并将其替换回您的标记。这允许您为代码示例编写全面的测试套件,而无需维护多个相同代码片段的副本。
入门
依赖项
~4–11MB
~116K SLoC