问题标签 [doctest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1583 浏览

python - 我可以在 python 中对内部函数进行单元测试吗?

有什么办法可以写unittestsdoctestsforinnerfunc吗?

0 投票
2 回答
1413 浏览

python - 在 doctest (python) 中模拟 Y of (from X import Y)

我正在尝试创建一个带有模拟函数的文档测试,该函数位于一个单独的模块中,并且导入如下

foomodule.py:

这失败了。

如果我将 import 更改为import foomodule 并在任何地方使用foomodule.foo那么它可以工作。

但是有没有解决上述方法导入的模拟函数的解决方案?

0 投票
1 回答
960 浏览

python - 为什么鼻子在只有 644 权限的文件中找到测试?

今天,我在带有鼻子的 Ubuntu 9.10 上使用 Python 2.6 运行了一堆文档测试:

怎么回事?我在那些文件中进行了测试,为什么那不起作用?

我将权限更改为 644:

将其更改回 777:

这是为什么?使用 644,我什至无法编辑我的文件!

0 投票
7 回答
3593 浏览

python - views.py 中的 Django 文档测试

关于测试的 Django 1.4文档指出:

对于给定的 Django 应用程序,测试运行程序在两个地方查找 doctest:

  • models.py文件。您可以为单个模型定义模块级 doctest 和/或 doctest。将应用程序级文档测试放在模块文档字符串中,将模型级文档测试放在模型文档字符串中是常见的做法。

  • 在应用程序目录中调用的文件tests.py——即保存models.py 的目录。该文件是您要编写的任何和所有与模型无关的文档测试的挂钩。

出于好奇,我想知道为什么 Django 的 testrunner仅限models.py于.views.pymanage.py test

如有任何意见,我将不胜感激。

谢谢你。

布赖恩

0 投票
2 回答
1614 浏览

python - doctest locally defined functions

is there any way to doctest locally defined functions? As an example I would want

to NOT pass the test. But still I would not want to make foo2 global for the entire module...

0 投票
2 回答
1192 浏览

pydev - 从 Pydev 运行文档测试?

有什么直接的方法还是我应该使用像鼻子这样的外部工具?

0 投票
7 回答
1719 浏览

python - 使用 doctest 测试警告

我想使用doctests来测试某些警告的存在。例如,假设我有以下模块:

如果我python -m doctest testdocs.py在课堂上运行 doctest 并确保打印了警告,我会得到:

看起来警告正在打印,但没有被 doctest 捕获或注意到。我猜这是因为警告打印到sys.stderr而不是sys.stdout. 但即使我sys.stderr = sys.stdout在模块末尾说,也会发生这种情况。

那么有什么方法可以使用 doctests 来测试警告吗?我在文档或我的谷歌搜索中找不到任何一种方式或其他方式。

0 投票
5 回答
3602 浏览

python - 如何使用 doctest 测试浮点结果?

我正在开发一个进行一些浮点计算的程序。有没有办法用 doctests 测试我的函数(提供浮点数)?

0 投票
3 回答
4949 浏览

python - 在 Python 中模拟 ImportError

我现在尝试了将近两个小时,没有任何运气。

我有一个看起来像这样的模块:

稍后在代码中:

有任何想法吗?

编辑:

亚历克斯的建议似乎不起作用:

运行测试时:

但是,当我从 python 交互式控制台运行相同的代码时,它确实有效。

更多编辑:

我正在使用zope.testing一个测试文件,shorturl.txt其中包含特定于我模块的这一部分的所有测试。首先,我正在导入zope.component可用的模块,以演示和测试通常的用法。没有zope.*包被认为是一种极端情况,所以我稍后会对其进行测试。因此,我必须以某种方式reload()使我的模块zope.*不可用。

到目前为止,我什至尝试在 tempdir 中使用tempfile.mktempdir()和清空zope/__init__.pyand文件,然后将zope/component/__init__.pytempdir 插入到.sys.path[0]zope.*sys.modules

也没有用。

更多编辑:

与此同时,我试过这个:

它适用于测试套件的命名空间(= 中的所有导入shorturl.txt),但它不在我的主模块中执行,ao.shorturl. 甚至当我reload()它。知道为什么吗?

导入zope.interfaces会引发ImportError,因此它不会到达我 import 的部分zope.component,并且它保留在 ao.shorturl 命名空间中。为什么?!

0 投票
2 回答
494 浏览

python - 使用(意外)转义字符传递字符串会丢失字符,即使它是原始字符串

我有一个带有 python doctest 的函数,该函数失败,因为其中一个测试输入字符串有一个反斜杠,即使我已将字符串编码为原始字符串,它也被视为转义字符。

我的 doctest 看起来像这样:

该函数旨在根据待办事项规范的一些变化从单行中提取待办事项文本,如下所示:

并且调用的正则表达式todo_match_obj是:

与我的 ipython shell 的快速对话给了我:

而且,以防万一 doctest 实现使用标准输出(我没有检查,抱歉):

从任何标准来看,我的 regex-foo 都不高,我意识到我可能在这里遗漏了一些东西。

编辑:在 Alex Martellis 回答之后,我想就什么正则表达式实际匹配 blasted 的建议提出建议r"""//\todo fix me"""。我知道我最初并没有要求别人做我的作业,我会接受亚历克斯的回答,因为它确实回答了我的问题(或证实了我的恐惧)。但我保证在这里为我的问题投票任何好的解决方案:)

编辑编辑:作为参考,已在 kodos 项目中提交了一个错误:错误 #437633

我正在使用 Python 2.6.4(r264:75706,2009 年 12 月 7 日,18:45:15)

谢谢你读到这里(如果你直接跳过这里,我明白)