问题标签 [pytest]

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

python - Haystack中的可变长度针(Python)

我有一个旨在查找应用程序搜索功能中的错误的函数,它从非控制 UTF-8 可能性生成一个可变长度的搜索字符串。在此函数上运行 pytest 迭代,提交用于搜索的随机 UTF-8 字符串大约每 500 次搜索生成一次调试错误。

由于我可以抓取导致错误的每个字符串,因此我想确定这些字符串中真正引起错误的字符的最小子系列是什么。换句话说,(在 pytest 循环内):

我是否应该将字符串切成两半并削减每一边并重新提交直到它失败,从它的 (len() - 1) 中选择随机字符,然后如果没有发生错误则备份?蛮力组合?解决这个问题的最佳方法是什么?

谢谢。

0 投票
2 回答
2714 浏览

python - 在单元测试中使用经过的时间作为断言

我正面临一种情况,我想确保如果修改了一个方法,它的运行时间不会超过 X 毫秒(本质上,如果该函数较慢,它会减慢我们网页上的搜索结果,并且对销售造成不良影响)。

我们有单元测试(特别是代码是在 python 下完成的,我们使用 py.test),第一个想法是断言如果函数在 X 毫秒内没有执行,则将测试标记为失败(或引发警告)。

但是,这感觉很危险(例如,并非所有计算机的速度都相同),而且我不太确定这是单元测试的工作。

有人遇到过类似的情况吗?对我来说,速度是一个特性,我想确保这样的特性在未来不会随着代码的发展而丢失。

如果单元测试不是答案,您会推荐哪些其他替代方案?

谢谢

0 投票
1 回答
2663 浏览

python - pytest 参数化装饰器不适用于 **kwargs

在我的测试代码中,我有以下内容:

因此,parameterize 函数尝试将我自己的@ae_test装饰器返回的函数参数化,如下所示:

到目前为止,这对我的所有测试都有效,但是参数化函数抱怨:

此错误发生在 pytest/python.py 的第 638 行

作为对第一条评论的回应,这里是完整的堆栈跟踪:

但问题实际上归结为parameterize寻找一个名为“标题”的论点而没有找到它。那是因为我使用的是 **kw 语法。我期望参数化函数只在其中放一个字典。

0 投票
1 回答
729 浏览

python - 无法在我的扭曲网络资源中测试 reactor.callInThread

我有一个扭曲的 Web 资源,它处理传入的请求并发送要在队列中处理的 celery 任务,这个 celery 调用是使用 reactor.callInThread 处理的

问题是我想对这段代码进行单元测试,但是像下面这样的简单 TestCase 失败了,因为 reactor.callInThread 中的代码从未执行过

作为记录,我使用http://findingscience.com/python/twisted/2012/02/20/testing-twisted-web-resources.html中描述的方法来测试网络资源

0 投票
1 回答
1454 浏览

python - 更改相关命令后,如何自动运行 py.test?

通过 autonose 或 nosy,一旦某些测试文件或相关文件发生更改,它将自动运行鼻子测试。我想问一下py.test是否提供了类似的功能,是否有其他工具可以自动激发py.test。

0 投票
2 回答
1173 浏览

python - 如何将一些生成的测试标记为 xfail/skip?

使用 py.test 我经常生成测试,其中一些测试用例预计会失败。如何将它们标记为 xfail?如果我把它@py.test.mark.xfail放在测试函数上,这意味着它的所有实例都是 xfail。如果我py.test.xfail()在测试中执行它实际上未通过测试,而不仅仅是将其标记为 xfail。我可以用 metafunc 做些什么来添加这个标记吗?

例如

0 投票
2 回答
8409 浏览

python - [py.test]: 测试依赖

我正在使用 py.test 编写测试系统,并根据其他一些测试运行结果寻找一种方法来执行特定的测试。

例如,我们有标准的测试类:

如果 test_A() 和 test_B() 通过,则应该执行 test_C(),否则 - 跳过。

我需要一种在测试或测试类级别上执行此类操作的方法(例如,如果所有 Test_Smoke 都通过了,则执行 Test_Perfo),并且我无法使用标准方法(例如 @pytest.mark.skipif)找到解决方案。

pytest有可能吗?

0 投票
9 回答
28633 浏览

python - 如果一个失败了,如何跳过课堂上的其余测试?

我正在使用 Jenkins、Python、Selenium2(webdriver) 和 Py.test 框架为 Web 测试创建测试用例。

到目前为止,我正在按以下结构组织我的测试:

每个都是测试用例,每个test_方法都是一个测试步骤

当一切正常时,此设置工作得很好,但是当一个步骤崩溃时,其余的“测试步骤”就会发疯。在 的帮助下,我能够将失败包含在类(测试用例)中teardown_class(),但是我正在研究如何改进它。

如果其中一个方法失败,我需要以某种方式跳过(或 xfail)test_一个类中的其余方法,以便其余测试用例不会运行并标记为 FAILED(因为那将是误报)

谢谢!

更新:我没有寻找或回答“这是不好的做法”,因为这样称呼它是非常有争议的。(每个测试类都是独立的——这就足够了)。

更新 2:在每种测试方法中添加“if”条件不是一种选择 - 需要大量重复工作。我正在寻找的是(也许)有人知道如何使用类方法的钩子。

0 投票
2 回答
4622 浏览

python - pytest 在类中以正确的顺序运行场景

0 投票
2 回答
3228 浏览

python - pytest 2.3 在类中添加拆解

我正在研究 pytest (2.3) 的新版本,并且对你的新功能感到非常兴奋

“可以通过在执行一些需要撤消的操作后立即注册一个或多个拆卸函数来精确控制拆卸,无需单独的“拆卸”装饰器”

这里

当它作为函数使用时,一切都很清楚,但是如何在类中使用它呢?