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

python - 从 sql 表中读取预期结果

我一直在从我知道的任何来源进行调查..我仍然不明白..尽管我理解它是如何工作的,但我一定做错了什么。

我正在使用 Pyunit 创建一个测试,我从表中读取数据,然后我需要比较结果。

例如 :

现在在python代码方面:

所以这只是我工作代码的一个例子,但基本上这就是我卡住的地方。

如何从 SQL 表中测试验证我的预期结果?

0 投票
1 回答
2190 浏览

python - 如何从脚本重复运行 python 单元测试并收集结果

我无法弄清楚如何从 python 脚本中运行单个单元测试并收集结果。

场景:我有一组测试来检查产生不同对象的各种统计分布的各种方法。测试有时会失败,因为他们应该考虑到我基本上是在检查特定类型的随机性。我想从脚本甚至解释器重复运行测试并收集结果以供进一步分析。

假设我有一个模块 myTest.py :

基本上我需要:

  1. 运行设置方法
  2. 运行 testTest1(比如说),100 次
  3. 收集失败
  4. 返回失败

我最接近的是(使用来自类似问题的代码):

但这不起作用,因为:

runner.run(suite) 不运行设置方法

当 testTest1 失败时,我无法捕获它抛出的异常

0 投票
9 回答
203535 浏览

python - 通过命令行从 unittest.TestCase 运行单个测试

在我们的团队中,我们定义大多数测试用例是这样的:

一个“框架”类ourtcfw.py

还有很多测试用例,比如 testMyCase.py:

当我正在编写新的测试代码并希望经常运行它并节省时间时,我确实将“__”放在所有其他测试的前面。但这很麻烦,分散了我正在编写的代码的注意力,而且这产生的提交噪音很烦人。

因此,例如,在对 进行更改时testItIsHot(),我希望能够这样做:

并且只运行unittest testItIsHot()

我怎样才能做到这一点?

我试图重写这if __name__ == "__main__":部分,但由于我是 Python 新手,所以我感到迷茫,并不断抨击除方法之外的所有内容。

0 投票
1 回答
1506 浏览

python - 如何对 python unittest 发现测试进行排序?

unittest我使用 Python格式创建了一堆 Python 测试。

现在我可以运行它们了

我找到了它们,然后运行它们。

现在,无论我是在 Windows 上还是在 Linux 上运行测试,都存在细微的差别。实际上,在 Windows 上,测试是按字母顺序运行的,而在 Linux 上,测试是按人类特定的可发现顺序运行的,即使总是相同的。

问题是我依靠测试文件的前两个字母来排序测试的执行顺序。并不是说它们必须按特定顺序运行,而是要进行某种信息测试,在其输出中显示版本数据,以便首先出现在测试运行日志中。

我可以做些什么来在 Linux 上按字母顺序运行测试吗?

0 投票
1 回答
1458 浏览

python - 如何从测试内部访问 py.test capsys?

py.test 文档说我应该将 capsys 参数添加到我的测试方法中,但在我的情况下这似乎是不可能的。

0 投票
0 回答
156 浏览

python - 在python中使异步调用方法走同步方式的设计模式

我正在为套接字程序编写测试用例。套接字将异步接受线程中的消息。我需要编写一个测试用例来验证特定消息。从我的测试用例中,我应该调用 waitFor(x, timeout) 来等待特定消息。waitFor() 函数应该是同步的。

存在哪些可用于这种情况的设计模式?

0 投票
2 回答
108981 浏览

python - Python 从导入的模块中模拟一个函数

我想了解如何@patch从导入的模块中获取功能。

这是我到目前为止的地方。

应用程序/模拟.py:

应用程序/my_module/__init__.py:

测试/模拟测试.py:

这不像我预期的那样工作“已修补”模块仅返回get_user_name. 如何模拟要导入到正在测试的命名空间的其他包中的方法?

0 投票
3 回答
1675 浏览

python - 未为第二个单元测试定义全局名称

Eclipse 平台,Python 3.3。

我创建了下面的代码来演示使用全局变量和 python unittest 时的问题。我想知道为什么第二个单元测试(直接重复第一个)会导致

尝试注释掉第二个测试,一切都会通过。
(注意:我在示例之后添加了真实代码试图实现的内容的简短摘要,希望它在那里不会那么突兀,因为它与问题并不真正相关)

在实际代码中,_fred 是引用从 Thread 派生的类的实例的变量(请参阅我在那里所做的)并在 start 方法中分配。
_fred = MyThreadClass()
同步队列还有第二个全局变量。
这些方法启动和停止控制专用线程上的处理队列项。'stop' 在允许添加项目的同时停止处理。
Thread API 只允许启动一次调用。所以要重新开始处理,我需要一个新的 Thread 实例。因此使用

猜我的主要语言没有奖品

0 投票
1 回答
842 浏览

python - 如何修补存储在变量中的函数?

如何使以下测试起作用?

我的模块.py

测试.py

当我执行测试时出现ConnectionError异常,因为foo正在执行真正的requests.post.

0 投票
4 回答
1778 浏览

flask - 对 Flask 会话进行单元测试 - 无法使用 session_transaction 重现失败

我正在测试一个 Flask 应用程序(Flask 0.9),特别是我有一个会话装置,我想以记录的方式运行,就像这样(据我了解):

这按预期工作,输出如下所示:

不幸的是,我遇到了一个未在端点函数中设置会话数据的意外结果,即输出如下所示:

仅当从我的单元测试框架运行时才会出现此问题。就目前而言,我无法用退化的情况重现这个问题,尽管我已经做出了相当大的努力,其中一些努力的要点在这里。重点是我已经包括在内itsdangerous,并且Google App Engine testbed期望其中之一可能是原因。

在我自己的系统上,我比gist走得更远,并且几乎完全复制了我的单元测试框架,试图隔离这一点。同样,我已经从我的测试框架中删除了越来越多的相关代码。就这一点而言,我无法想到可能影响结果的退化案例和我的精简框架之间的差异。我已经遍历了c.post()pdb 中的调用,试图找出这种恶意的原因,但还没有收集到任何有用的见解。

总而言之,对于问题可能出在哪里的一点指导或建议,我将不胜感激。什么可能会影响 Werkzeug 的环境,以至于session_transaction没有得到尊重?