问题标签 [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 投票
3 回答
14590 浏览

python - 你能检查一下 Python 中的 doctest 是否引发了异常吗?

是否可以编写一个doctest单元测试来检查是否引发了异常?
例如,如果我有一个foo(x)应该引发异常 if 的函数,x < 0我将如何为此编写doctest

0 投票
11 回答
28630 浏览

python - Python - doctest 与 unittest

我正在尝试开始在 Python 中进行单元测试,我想知道是否有人可以解释 doctest 和 unittest 的优缺点。

你会在什么条件下使用它们?

0 投票
6 回答
1898 浏览

c++ - C++ 相当于 Python 的文档测试?

我认为Python 的 doctests的概念很棒,作为实时商店的 C++ 程序员,我非常嫉妒。我们基本上没有单元测试能力,这是一个严重的障碍。我见过 C++Unit 等,但是有什么东西可以从 Python 的 doctests 之类的注释中提取测试用例,而不是直接将它们放入代码中?

0 投票
1 回答
471 浏览

python - 动态创建对象的 Doctest

测试这样的代码的最佳方法是什么(下面的方法显然失败,而对象每次都在不同的块中创建):

0 投票
1 回答
127 浏览

python - 你能区分测试和变量设置吗?

我喜欢 doctest,但是当您在传递给函数之前需要设置复杂的参数时,它变得非常难以阅读。因此,您开始使用多行分配然后调用您想要测试的函数。这种方法但是,将报告您有多个测试,而不是您拥有的实际测试数量.. 一个例子将说明我的意思..

在上面的代码片段中,只有一个测试,另一个只是一个变量赋值,但是,这就是报告的内容..

我查看了记录的标志,当然我错过了一些东西..

0 投票
1 回答
165 浏览

python - 在 Python 的单元测试中使用 doctest“结果解析器”?

我最近遇到了一个关于在 Python 中组合单元测试和文档测试的问题。我以其他方式解决了这个问题,但我仍然对此有疑问。

Python 的 doctest 模块解析模块中的文档字符串,并在每一行的开头运行“>>>”之后的命令,并将其输出与文档字符串中的输出进行比较。

我想知道我是否可以在需要时使用 doctest 模块实现的比较方法。我知道可以将 doctest 作为测试用例添加到测试套件中,但在这里我想在单个测试用例中进行。

它是这样的:

因为 doctest 使用一些启发式方法来比较省略号等输出。

有人会给出想法或建议吗?

0 投票
6 回答
12448 浏览

python - python doctest 可以忽略一些输出行吗?

我想写一个这样的doctest:

有没有办法做到这一点?我认为切换到 unittest 会更有意义,但我很好奇是否可以指定一个不应该与 doctest 中的测试匹配的输出范围。

谢谢!

0 投票
4 回答
1170 浏览

python - 如何处理此文本文件并解析我需要的内容?

我正在尝试解析 Python doctest 模块的输出并将其存储在 HTML 文件中。

我有类似这样的输出:

每个失败之前都有一行星号,用于分隔每个测试失败。

我想做的是去掉失败的文件名和方法,以及预期和实际结果。然后我想使用它创建一个 HTML 文档(或将其存储在一个文本文件中,然后进行第二轮解析)。

如何仅使用 Python 或 UNIX shell 实用程序的某种组合来做到这一点?

编辑:我制定了以下 shell 脚本,它匹配我想要的每个块,但我不确定如何将每个 sed 匹配重定向到它自己的文件。

0 投票
2 回答
168 浏览

python - doctests 中的字符串引用问题

当我在不同的 Python 版本(2.5 与 2.6)和不同的平台(FreeBSD 与 Mac OS)上运行 doctests 时,字符串的引用方式不同:

因此,在一个盒子上,repr(decimal.Decimal('5.00')) 会导致“Decimal(“5.00”)”,而另一个盒子会导致“Decimal('5.00')”。有没有办法在不创建更复杂的测试逻辑的情况下解决这个问题?

0 投票
2 回答
196 浏览

python - DOCTEST==argv[0] 作为约定?

在我正在编写的一些 Python 中(命令行和过滤器测试工具:claft)我想要一种简单的方法来调用内置测试套件(doctest),我决定如下:

因此,如果为其他程序设置了 DOCTEST 变量,我将忽略它。事实上,我对此的测试只是: DOCTEST=./claft ./claft 或者如果我想详细一点,我可以使用: DOCTEST=./claft VERBOSE=1 ./claft 所以即使我离开 DOCTEST=./claft我的环境只有当我从它自己的目录中调用我的程序时,测试代码才会运行。如果我切换到我的一个测试套件并使用相对 PATH 调用它,那么我可以避免无意中触发此功能。

有没有其他人使用过这种约定?

避免环境变量名称之间冲突的其他建议或最佳实践是什么?提供对测试工具功能的“隐藏”访问?

(另外,如果有人想玩claft ,请随意试一试。目前它的代码非常丑陋,几乎不能作为概念证明。但它的功能极少。这也是自学如何的好方法使用 Mercurial 和 bitbucket。wiki 和问题跟踪是发布有关craft的反馈的最佳场所)。