我编写了一个python脚本来自动为我完成所有测试,并生成一个HTML报告。前几天我发现了用于单元测试的discover,它让我可以在给定目录中运行所有单元测试而无需明确命名它们,我真的很想能够以相同的方式进行我的文档测试,而不是必须显式导入每个模块。我在https://docs.python.org/2/library/doctest.html找到了一些关于如何执行此操作的信息但并没有真正明白。你能帮我在我的doctests中使用discover吗?Pythontestdiscoverywithdoctests,coverageandparallelism是相关的,但仍然没有回答我的
我们目前有pytest,覆盖插件在tests目录中的测试上运行。同时运行从我们的主代码中提取的文档测试的最简单方法是什么?--doctest-modules不起作用(可能是因为它只是从tests运行doctests)。请注意,我们希望在同一进程中包含doctest(而不是简单地运行py.test的单独调用),因为我们希望在代码覆盖率中考虑doctest。 最佳答案 现在已经实现了:-)。要使用,请运行py.test--doctest-modules命令,或使用pytest.ini设置您的配置:$catpytest.ini#conte
我们目前有pytest,覆盖插件在tests目录中的测试上运行。同时运行从我们的主代码中提取的文档测试的最简单方法是什么?--doctest-modules不起作用(可能是因为它只是从tests运行doctests)。请注意,我们希望在同一进程中包含doctest(而不是简单地运行py.test的单独调用),因为我们希望在代码覆盖率中考虑doctest。 最佳答案 现在已经实现了:-)。要使用,请运行py.test--doctest-modules命令,或使用pytest.ini设置您的配置:$catpytest.ini#conte
给定以下python脚本:#dedupe.pyimportredefdedupe_whitespace(s,spacechars='\t'):"""Mergerepeatedwhitespacecharacters.Example:>>>dedupe_whitespace(r"Green\t\tGround")#doctest:+REPORT_NDIFF'Green\tGround'"""forwinspacechars:s=re.sub(r"("+w+"+)",w,s)returns该函数在python解释器中按预期工作:$python>>>importdedupe>>>dedupe
给定以下python脚本:#dedupe.pyimportredefdedupe_whitespace(s,spacechars='\t'):"""Mergerepeatedwhitespacecharacters.Example:>>>dedupe_whitespace(r"Green\t\tGround")#doctest:+REPORT_NDIFF'Green\tGround'"""forwinspacechars:s=re.sub(r"("+w+"+)",w,s)returns该函数在python解释器中按预期工作:$python>>>importdedupe>>>dedupe
我想写一个这样的文档测试:""">>>printa.string()foo:abar:bdate:baz:c"""有没有办法做到这一点?我认为切换到unittest会更有意义,但我很好奇是否可以指定一个不应该与doctest中的测试匹配的输出范围。谢谢! 最佳答案 使用doctest.ELLIPSIS,您可以使用...来表示“匹配此处的任何字符串”。您可以使用doctest指令设置doctest选项,使其仅对一个测试用例有效:onlinedocs中的一个示例是:>>>printrange(20)#doctest:+ELLIPSIS[
我想写一个这样的文档测试:""">>>printa.string()foo:abar:bdate:baz:c"""有没有办法做到这一点?我认为切换到unittest会更有意义,但我很好奇是否可以指定一个不应该与doctest中的测试匹配的输出范围。谢谢! 最佳答案 使用doctest.ELLIPSIS,您可以使用...来表示“匹配此处的任何字符串”。您可以使用doctest指令设置doctest选项,使其仅对一个测试用例有效:onlinedocs中的一个示例是:>>>printrange(20)#doctest:+ELLIPSIS[
我正在为输出字典的函数编写文档测试。doctest看起来像>>>my_function(){'this':'is','a':'dictionary'}当我运行它时,它失败了Expected:{'this':'is','a':'dictionary'}Got:{'a':'dictionary','this':'is'}我对这次失败原因的最佳猜测是doctest不是检查字典相等性,而是检查__repr__相等性。Thispost表示有某种方法可以欺骗doctest检查字典是否相等。我该怎么做? 最佳答案 另一个好方法是使用pprint(
我正在为输出字典的函数编写文档测试。doctest看起来像>>>my_function(){'this':'is','a':'dictionary'}当我运行它时,它失败了Expected:{'this':'is','a':'dictionary'}Got:{'a':'dictionary','this':'is'}我对这次失败原因的最佳猜测是doctest不是检查字典相等性,而是检查__repr__相等性。Thispost表示有某种方法可以欺骗doctest检查字典是否相等。我该怎么做? 最佳答案 另一个好方法是使用pprint(
我在名为test2.txt的文件中包含以下内容。>>>deffaulty():...yield5...return7Traceback(mostrecentcalllast):SyntaxError:'return'withargumentinsidegenerator(,line3)我使用python-mtest2.txt调用测试运行。下面的结果完全出乎我的意料。我的想法是测试应该会成功,因为我已经在我的test2.txt文件中写入了预期的输出,它“几乎”与我从控制台输出中得到的匹配。我尝试添加'File"G:\"'....行?但测试仍然失败。 最佳答案