问题标签 [python-unittest]

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 回答
815 浏览

python - 让 pyunit 显示每个断言的输出

如何让 python 的 unittest 模块显示每个断言的输出,而不是在每个测试用例的第一个断言中失败?如果我能看到失败的完整模式而不仅仅是第一个,那么调试会容易得多。

在我的情况下,断言基于一个数组上的几个循环,该数组包含一个对象加上一些函数名称和预期的输出(见下文),所以没有一种明显的方法(至少对我来说)只是将每个断言分成一个单独的测试用例:

obj.__getattribute__('hello')返回obj.hellosonode.__getattribute__(test_state)()是我调用 node 的成员函数的方式,它的名称存储在 test_state 变量中。

0 投票
2 回答
6668 浏览

python - pyunit 的漂亮 html 报告

你知道为 pyunit 创建漂亮的 html 报告的工具吗?

0 投票
16 回答
58582 浏览

python - Python unittest:如何只运行测试文件的一部分?

我有一个测试文件,其中包含需要花费大量时间的测试(它们将计算发送到集群并等待结果)。所有这些都在特定的 TestCase 类中。

由于它们需要时间而且不太可能中断,我希望能够选择这个测试子集是否运行(最好的方法是使用命令行参数,即“ ./tests.py --offline”或其他东西像那样),所以我可以经常快速地运行大部分测试,并且在我有时间的时候不时地运行整套测试。

现在,我只是unittest.main()用来开始测试。

0 投票
4 回答
654 浏览

python - 在网络线程上使用 pyunit

我的任务是为一套用 python 编写的网络软件编写单元测试。为消息构建器和其他静态方法编写单元非常简单,但是在为网络循环线程编写测试时我遇到了困难。

例如:它连接的服务器可以在任何端口上,我希望能够测试连接到多个端口(按顺序,而不是并行)的能力,而无需实际运行多个服务器。解决这个问题的好方法是什么?也许将服务器构建和销毁作为测试的一部分?有些东西告诉我,必须有一个更简单的答案来逃避我。

我不得不想象有一些方法可以对网络线程进行单元测试,但我似乎找不到任何方法。

0 投票
2 回答
15059 浏览

python - python unittest assertRaises在assertRaises失败时抛出异常

我有代码,当 assertRaises 失败时,assertRaises 会抛出异常。我认为如果 assertRaises 失败,那么测试就会失败,最后我会得到一份报告说测试失败。我没想到会抛出异常。下面是我的代码。我做错了什么?我正在使用 Python 2.6.2。

0 投票
1 回答
514 浏览

python - 如何扩展和修改 PyUnit

我即将着手扩展和修改 PyUnit。例如,除了失败之外,我还会向它添加警告。

我有兴趣听到有关如何开始的建议,例如,子类化每个 PyUnit 类?要避免什么和其他警告。

从那些已经扩展 PyUnit 的人那里寻找输入。

0 投票
2 回答
2127 浏览

python - 从 pyunit 单元测试生成测试覆盖率信息?

我有一些针对我正在编写的简单命令行程序的 pyunit 单元测试。我可以生成测试覆盖率数字吗?我想看看我的测试没有涵盖哪些行。

0 投票
11 回答
1720 浏览

python - 非关键单元测试失败

我正在使用 Python 的内置unittest模块,我想编写一些不重要的测试。

我的意思是,如果我的程序通过了这样的测试,那就太好了!但是,如果它没有通过,那并不是真正的问题,程序仍然可以工作。

例如,我的程序设计为使用自定义类型“A”。如果它不能与“A”一起工作,那么它就坏了。然而,为了方便起见,它的大部分也应该与另一种类型“B”一起使用,但这不是强制性的。如果它不能与“B”一起工作,那么它不会被破坏(因为它仍然可以与“A”一起工作,这是它的主要目的)。无法使用“B”并不重要,我只会错过我可以拥有的“奖励功能”。

另一个(假设的)示例是在编写 OCR 时。该算法应该能识别出测试中的大多数图像,但如果其中一些图像失败也没关系。(不,我不是在写 OCR)

有没有办法在 unittest(或其他测试框架)中编写非关键测试?

0 投票
2 回答
564 浏览

python - 从模块运行测试

我正在尝试从我认为是一个模块的 python 中运行一些单元测试。我有一个像这样的目录结构

在 testsuite.py 我有

看起来可以开始测试,但它没有在 TestConvertNumberToString.py 中进行任何测试。在那个类中,我有一组以“test”开头的函数。

我应该怎么做才能运行 python TestSuite.py 实际上启动我在 UnitTests 中的所有测试?

0 投票
17 回答
307605 浏览

python - 如何在目录中运行所有 Python 单元测试?

我有一个包含我的 Python 单元测试的目录。每个单元测试模块的格式为test_*.py。我正在尝试创建一个名为all_test.py的文件,您猜对了,它将运行上述测试表单中的所有文件并返回结果。到目前为止,我已经尝试了两种方法;两者都失败了。我将展示这两种方法,我希望有人知道如何正确地做到这一点。

对于我的第一次勇敢尝试,我想“如果我只是在文件中导入所有测试模块,然后调用这个小unittest.main()玩意儿,它会起作用,对吗?” 好吧,事实证明我错了。

这不起作用,我得到的结果是:

不过,对于我的第二次尝试,好吧,也许我会尝试以更“手动”的方式进行整个测试。所以我试图在下面这样做:

这也不起作用,但它似乎如此接近!

我似乎有某种套件,我可以执行结果。我有点担心它说我只有run=1,似乎应该是这样run=2,但这是进步。但是如何将结果传递并显示给 main?或者我如何基本上让它工作,这样我就可以运行这个文件,然后运行这个目录中的所有单元测试?