python: 如何对我的github-markdown文件进行doctest?
我想运行这个文件里的测试,但我不太清楚该怎么做:
README.md
:
# WELCOME!
This library is helpful and will help you in _many_ ways!
For example:
```
>>> import library
>>> library.helps()
True
```
(顺便问一下,有人能帮我让这个以markdown格式高亮显示吗?)
4 个回答
1
我是上面提到的phmdoctest的作者/拥有者。
请编辑原始问题的README.md文件,确保你想要测试的代码块以
```python
开头。
然后运行
phmutest README.md --replmode --log
与phmdoctest相比,phmutest有以下新功能:
- 可以将Markdown文件中的所有代码块作为一个整体进行测试。
- 使用Python标准库的测试工具来内部运行测试。
- 调用者可以提供自己的Python初始化和清理代码。
- 可以在pytest测试用例中调用。
- 一个示例可以跨多个文件进行扩展。
1
我刚发现了这个phmdoctest包,它似乎可以很好地与常见的Python高亮Markdown一起使用:
Any text here for example...
```python
print(1+2)
```
sample output:
```
3
```
还有一个简单的用法:
phmdoctest README.md --outfile tests/test_readme.py
python -m pytest tests -v
在第一行,你可以生成一个新的测试文件,之后只需对整个项目进行标准测试就可以了……
12
你可以在命令行中对你的 README
文件运行 doctest
,方法是使用以下命令:
python -m doctest -v README.md
这里的 -m
参数 是告诉 Python 运行后面的模块作为一个脚本。当你以脚本的方式运行时,doctest 模块会在指定的文件上执行 doctest.testmod
这个函数。最后,-v
参数让 doctest
以详细模式运行;如果关闭这个模式,doctest
只会在至少有一个测试失败时输出结果(如果所有测试都通过,它就不会输出任何内容)。
6
作为一种替代方案,我写了一个叫做 mkcodes 的脚本,它可以从markdown文件中提取代码块,这样我们就可以在一个单独的文件中进行测试。
下面是我使用mkcodes的实际测试脚本:
mkcodes --github --output tests/docs/test_{name}.py docs
py.test tests
pyflakes tests
pep8 tests