草庐IT

doctests

全部标签

python - 接收和显示用户输入的 Doctesting 功能 - Python(撕掉我的头发)

我目前正在使用Python(3.1)编写一个小应用程序,并且像一个好child一样,我正在边做边测试。但是,我遇到了一种我似乎无法进行测试的方法。它包含一个input(),因此,我不确定在doctest的“预期”部分放置什么。说明我的问题的示例代码如下:""">>>getFiveNums()Howdy.Pleaseenterfivenumbers,hitaftereachonePleasetypeinanumber:Pleasetypeinanumber:Pleasetypeinanumber:Pleasetypeinanumber:Pleasetypeinanumber:"""imp

具有 doctests、覆盖率和并行性的 Python 测试发现

...还有一匹小马!不,认真的。我正在寻找一种组织“有效”测试的方法。大多数事情确实有效,但并非所有部分都能组合在一起。所以这就是我想要的:自动发现测试。这包括doctests。请注意,doctest的总和不得作为单个测试出现。(即不是py.test--doctest-modules所做的)能够并行运行测试。(类似于xdist中的py.test-n)生成覆盖率报告。使pythonsetup.pytest正常工作。我当前的方法涉及一个tests目录和load_testsprotocol.包含的所有文件都命名为test_*.py。如果我创建一个包含以下内容的文件test_doctests.

python - 涉及转义字符的 Doctest

有一个函数fix(),作为将字符串写入文本文件的输出函数的辅助函数。deffix(line):"""returnsthecorrectedline,withallapostrophesprefixedbyanescapecharacter>>>fix('DOUG\'S')'DOUG\\\'S'"""if'\''inline:returnline.replace('\'','\\\'')returnline打开doctests,我收到以下错误:Failedexample:fix('DOUG'S')Exceptionraised:Traceback(mostrecentcalllast):

python - Doctest 失败,退出代码为零

在我的测试代码中,我的doctest失败了,但脚本以零返回值退出,这导致CI​​运行通过,这不是预期的。这是doctest模块的正确行为吗?我的脚本结束于:if__name__=='__main__':importdoctestdoctest.testmod()输出如下:**********************************************************************File"test/test.py",line7,in__main__Failedexample:f(1,0)Expected:-----type:value:integerdiv

python - 有没有办法使用 doctest 和 sphinx 来测试和记录命令行应用程序?

我有一个Python模块,我正在为其编写一个使用Sphinx的教程,包括doctests。这个模块带有一些辅助程序。我想在文档中包含这些帮助程序并且让doctest检查标准输出是否在当前程序版本和文档之间同步。我想我可以使用sh模块或popen来检查给定程序的标准输出,但我希望这些技巧不要出现在文档中,否则非程序员用户肯定会迷路。有什么办法可以实现吗? 最佳答案 doctest模块仅检查可以从python交互式提示运行的语句。可以使用subprocess从python交互式提示调用命令行工具模块:#CreateHelperFunct

Python doctest 异常

因此,我正在尝试将异常与doctest匹配。>>>api=Api("foo","bar")#doctest:+IGNORE_EXCEPTION_DETAILTraceback(mostrecentcalllast):...AuthError问题是这适用于py2.7但不适用于python3。异常跟踪的格式已更改,因此现在它包含完整的模块名称。IE。在python3中,我有package.module.AuthError。有没有办法使两者都匹配?似乎IGNORE_EXCEPTION_DETAIL在这里没有效果。 最佳答案 这被相关问题的

python doctest : expected result is the same as the "got" result but the test failed

我正处于使用python作为软件QA工具的学习阶段。我编写了下一个简单测试,以便在文本文件编号矩阵中找到字母“a”。问题是测试失败,即使期望值等于我得到的结果。这是为什么呢?你能告诉我我做错了什么吗?测试脚本:fin=open("abc.txt","r")arr_fin=[]forlineinfin:arr_fin.append(line.split())printarr_finforrowinarr_fin:arr_fin_1="".join('{0:4}'.format(ior"")foriinrow)printarr_fin_1deffind_letter(x,arr_fin_1

python - 有没有办法在 python doctest 中重新启动或重置 python 解释器?

我正在写一个简短的教程,并希望能够使用python的doctest运行其中的示例python-mdoctestfoo.txt教程中有一点我想开始使用一个新的、干净的python解释器。是否有执行此操作的机制? 最佳答案 您可以使用代码模块创建一个新的解释器。您甚至可以复制全局/局部变量。Blender文档中有一个很好的示例here他们建议如下:在脚本中间,您可能想要检查变量、运行函数和检查流程。importcodecode.interact(local=locals())如果你想访问全局变量和局部变量运行这个:importcoden

python - python 2/python 3 的可移植 doctests 是否可行?

deffib_r(n,memo={0:0,1:1}):"""recursivefibonaccinumbersgenerationwithmemoisation>>>[fib_r(n)forninrange(10)][0,1,1,2,3,5,8,13,21,34]>>>fib_r(100)354224848179261915075"""ifnnotinmemo:memo[n]=fib(n-1)+fib(n-2)returnmemo[n]上面的doctest在python3上通过,但在2.x上失败,如下所示:****************************************

python - 使用 Python doctest 的多行语句

是否可以使用pythondoctest处理多行语句?例如,以下内容在doctest中不起作用:>>>forsin[1,2,3]:...fortin[4,5,6]:...print(s*t)我需要从doctest执行以上三个语句。 最佳答案 你可能做错了什么。以下是正确的示例。测试.py:""">>>forsin[1,2,3]:...fortin[4,5,6]:...prints*t45681012121518"""它工作得很好:$python-mdoctest-vtest.pyTrying:forsin[1,2,3]:fortin[