在PyCharmIDE中,如果我右键单击带有doctest的函数/方法,有时右键菜单会给我选项:“Run'Doctestmy_function_name'”,有时相反,右键菜单只提供运行整个文件的选项(不是作为doctest)。什么决定什么时候会给出“rundoctest”选项,什么时候不会?有没有办法以一种或另一种方式强制它? 最佳答案 在PyCharm中运行一个模块(或其中的测试)是通过RunConfiguration完成的。.当您右键单击一个模块时,PyCharm会搜索该模块的现有RunConfiguration。如果找到配置
使用Python2.7我正在尝试测试特定函数调用的结果是否为无我希望这些测试能够通过(请原谅这个相当愚蠢的例子)defsix_or_none(val):""">>>six_or_none(6)6>>>six_or_none(4)None"""ifval==6:return6returnNone但是它们会产生以下结果Failedexample:six_or_none(4)Expected:NoneGotnothing在doctests中测试None的正确方法是什么? 最佳答案 Python解释器ignoresNone返回值,所以doc
使用Python2.7我正在尝试测试特定函数调用的结果是否为无我希望这些测试能够通过(请原谅这个相当愚蠢的例子)defsix_or_none(val):""">>>six_or_none(6)6>>>six_or_none(4)None"""ifval==6:return6returnNone但是它们会产生以下结果Failedexample:six_or_none(4)Expected:NoneGotnothing在doctests中测试None的正确方法是什么? 最佳答案 Python解释器ignoresNone返回值,所以doc
我想写一个这样的文档测试:""">>>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[
我编写了一个专门的HTML解析器,我想用我下载的几个示例网页对其进行单元测试。在Java中,我使用类资源将数据加载到单元测试中,而不必依赖它们位于文件系统上的特定路径中。有没有办法在Python中做到这一点?我找到了doctest.testfile()功能,但这似乎是特定于文档测试的。我只想获得一个文件句柄,指向一个特定的HTML文件,它是相对于当前模块的。提前感谢您的任何建议! 最佳答案 要从unittest中的文件加载数据,如果testdata与unittests位于同一目录中,则一种解决方案:TESTDATA_FILENAME
我编写了一个专门的HTML解析器,我想用我下载的几个示例网页对其进行单元测试。在Java中,我使用类资源将数据加载到单元测试中,而不必依赖它们位于文件系统上的特定路径中。有没有办法在Python中做到这一点?我找到了doctest.testfile()功能,但这似乎是特定于文档测试的。我只想获得一个文件句柄,指向一个特定的HTML文件,它是相对于当前模块的。提前感谢您的任何建议! 最佳答案 要从unittest中的文件加载数据,如果testdata与unittests位于同一目录中,则一种解决方案:TESTDATA_FILENAME
我正在为输出字典的函数编写文档测试。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:\"'....行?但测试仍然失败。 最佳答案