针对 README.md 中的代码示例运行测试?

rmh*_*son 5 markdown doctest github node.js

有谁知道用于针对 README.md 中的代码示例运行测试的开源项目或程序?

这是一个长期存在的问题,我的文档往往会随着代码的变化而过时。例如,README.md 中的代码片段将不再适用于当前版本,并且在新开发人员加入该项目之前不会被捕获。是否可以在我的测试套件中包含 README.md 代码片段?

例如,使用say.nancat示例参数:

# $ node

> const say = require('say')
> say.nancat('grumpy is best')
'grumpy is best'
Run Code Online (Sandbox Code Playgroud)

该程序将使用“#”初始化环境(未在 README.md 中显示,因为假定了上下文),运行“>”行并根据下一行确定通过/失败。类似于 python 中的 doctests。

很多人都面临着保持 README.md 和其他文档与代码保持同步的问题,所以我希望有一个现成的解决方案。我看过(DuckDuckGo)但无济于事。

小智 4

也许byexample就是您正在寻找的。

它是一个运行文本文件中的代码片段(也称为示例)并检查其输出的工具。它类似于 Python 的文档测试,但它适用于Javascript、Ruby、Python 和其他语言(甚至适用于 C 和 C++)。

Javascript 示例可以写在 README.md 中,如下所示:

```javascript
1 + 2

out:
3
```
Run Code Online (Sandbox Code Playgroud)

或类似:

```javascript
> 1 + 2
3
```
Run Code Online (Sandbox Code Playgroud)

然后,从命令行运行它们:

$ byexample -l javascript README.md
[PASS] Pass: 2 Fail: 0 Skip: 0
Run Code Online (Sandbox Code Playgroud)

就是这样。该工具的完整文档可以在这里这里找到,Javascript 的特定注释和限制可以在这里找到。

免责声明:我是byexample的作者,我创建它的原因与rmharrison在他的问题中所写的原因相同

和他一样,我的文档有时会“不同步”,而注意到这一点的唯一方法是手动运行示例。因此,我创建了这个工具来自动检查和验证文档。

这对我来说真的很有用;我真的希望它对其他人有用。