Python:如何在我的Github-Markdown文件中使用doctest?

15

我想要运行此文件中的doctests,但我不确定该如何实现:

README.md:

# WELCOME!

This library is helpful and will help you in _many_ ways!

For example:

```
>>> import library
>>> library.helps()
True
```
< p > < em >(顺便说一下:有谁能帮我将这个突出显示为Markdown格式吗?)

4个回答

12
你可以在命令行中使用以下命令对README运行 doctest

python -m doctest -v README.md

-m 参数 告诉 Python 将以下模块作为脚本运行。当作为脚本运行时, doctest 模块会在以下文件上运行 doctest.testmod 函数。最后,-v 参数使得 doctest 以详细模式运行;如果关闭它,doctest 只有在至少一个测试失败时才会产生输出(并且如果一切成功,则不会产生任何输出)。


3
更新代码可能会导致文档示例出现错误。测试套件应该/将会在这种情况下告诉我们发生了什么。 - bukzor
2
完全确定比相当确定更好。 - bukzor
3
@bukzor 嘿,我刚刚收到了这个答案的通知。我不确定当我最初撰写它时为什么会那么讽刺。抱歉。我刚刚更新了我的答案,希望现在更有帮助性/信息价值了。 - ubomb

6
作为 doctest 的替代方案,我编写了 mkcodes 脚本,该脚本从 markdown 文件中提取代码块,以便在单独的文件中进行测试。
这是我使用 mkcodes 的实际测试脚本:
mkcodes --github --output tests/docs/test_{name}.py docs
py.test tests
pyflakes tests
pep8 tests

0

刚刚发现了这个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

在第一行中,您生成一个新的测试文件,然后仅对整个项目运行标准测试...


0

我是上述 phmdoctest 的作者/所有者。

编辑原始问题 README.md,并确保您想要进行测试的围栏代码块以

```python

开始运行

phmutest README.md --replmode --log

phmutest

与phmdoctest相比,phmutest具有以下新功能:

  • 将Markdown文件中的所有FCB作为单个示例进行测试。
  • 使用Python标准库的测试运行器在内部运行测试。
  • 调用者可以提供自己的Python初始化和清理代码。
  • 可以从pytest测试用例中调用。
  • 一个示例可以跨越多个文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接