问题标签 [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 回答
30735 浏览

python - py.test 如何以及在哪里找到固定装置

py.test 在哪里以及如何查找固定装置?我在同一个文件夹中的 2 个文件中有相同的代码。当我删除 conftest.py 时,找不到运行 test_conf.py 的 cmdopt(也在同一个文件夹中。为什么没有搜索到 sonoftest.py?

conftest.py 的内容

sonoftest.py 的内容

文档说

http://pytest.org/latest/fixture.html#fixture-function

  1. 由于 test_ 前缀,pytest 找到了 test_ehlo。测试函数需要一个名为 smtp 的函数参数。通过查找名为 smtp 的带有夹具标记的函数来发现匹配的夹具函数。
  2. smtp() 被调用来创建一个实例。
  3. test_ehlo() 在测试函数的最后一行被调​​用并失败。
0 投票
2 回答
650 浏览

python - 是否可以在 doctest 文件中使用 py.test 固定装置?

我们在项目中使用 py.test 并在大多数测试用例中使用fixture。但我认为不可能在 doctest 文件中使用固定装置。

举一个带有一些代码片段的示例:我在 conftest.py 中有一个浏览器夹具,例如:

并在文件 test_browser.txt 中使用它,例如:

但我看不到将夹具放入 doctest 文件的方法。py.test 有可能吗?

0 投票
1 回答
2072 浏览

coverage.py - 如何配置 tox 以便它将在单个环境而不是全部环境上运行 pytest 覆盖?

我确实有一个复杂的 tox.ini 配置,其中包含不同版本的 python 的多个环境。

我想知道如何告诉 tox 只在默认的 python 解释器上运行覆盖。

问题之一是默认的 Python 环境可能因平台而异。

我确实有一个包装脚本,它调用tox -e py25,py26,docs其中 -e 参数是检测到的 python 版本。

期望的行为:运行 pytest 覆盖单个环境(这应该与 jenkins 集成运行)。

0 投票
2 回答
1042 浏览

python - 是否可以不收集标记的测试?

目前,可以标记测试,然后使用-m参数运行它们(或不运行它们)。但是,仍然首先收集所有测试,然后才取消选择

在下面的示例中,仍然收集所有 8 个,然后运行 ​​4 个并取消选择 4 个。

问题:是否可以完全不收集标记/未标记的测试?

问题是:

1)当数据库中已经有一些项目(比如我的设备)和它的代码时,我正在使用一些测试:

我运行测试明确排除和设备测试:py.test -m "not device"但是,在收集过程中我得到了错误,因为device = Devices.get_device('t400-alex-win7')仍在执行。

2) 一些测试被标记time_demanding,因为大约有 400 个生成的测试。生成这些测试也需要时间。我从一般测试中排除了这些测试,但是它们是生成和收集的,然后被取消选择<-只是等待时间。

我知道 (1) 问题有一个解决方案 - 使用 pytest.fixtures 并将它们传递给测试,但是我真的很喜欢PyDev 提供的自动完成功能。

timedemanding类是:

正如你所看到的,当 pytest 点击@pytest.mark.parametrize它时,它应该已经知道它在 Class with 中@pytest.mark.timedemanding。但是,收集仍然发生。

0 投票
1 回答
9651 浏览

python - 如何使用 py.test 收集我的测试?

我尝试使用 py.test 收集我的测试,但它没有这样做。

  • 我是否必须在命令行中提供其他选项?

  • Py.test 在我的 .py 文件的目录中执行。还有其他要求吗?

  • 我的测试命名正确吗?在我的代码中,我将“Test-”用于类,“test_”用于方法。

终端的结果:

我正在测试的代码:

0 投票
2 回答
10865 浏览

python - 传递给 pytest 夹具的参数可以作为变量传递吗?

我有两个简单的测试设置,我试图将它们组合在一个夹具中,并希望测试功能将“参数”传递给夹具。

这是一个人为的例子,来解释我的问题。假设我有以下 pytest 夹具:

我可以让上面的参数作为test_madeup函数的输入传递吗?因此,类似于以下内容:

当然,上述方法是行不通的。实际情况要复杂一些,但我只想知道是否可以将函数传递params=['param1','param2'] 给夹具test_madeup

0 投票
1 回答
4021 浏览

python - py.test 不收集不是从“对象”继承的测试

我正在尝试使用测试所需的不同设置创建类。我希望我的所有测试都继承自这个类。作为跑步者,我使用py.test

但是当我尝试这样做时,py.test 不会收集从Base类继承的这些测试,因此它不会运行它们。在文档中没有找到任何有用的信息。

也许有人以前遇到过这样的问题?有任何想法吗?

谢谢。

PS当测试从对象继承时一切正常。Py.test 看到它们并正确运行。

代码示例:

我的基类:

我的测试课:

输出:

0 投票
3 回答
2892 浏览

python - 如何配置pycharm/intellij idea运行tox测试

是否可以配置 pycharm / intellij idea 来运行 tox 测试?我想在不同的 py 环境中针对不同的 python 版本测试我的代码。我试图配置它,但到目前为止我只设法配置单个 py.test 支持。

0 投票
1 回答
2062 浏览

python - 在 pycharm/pydev 中调试 pytest 事后异常

我想将 PyCharm 的内置 Pytest 运行器与调试器一起使用,而无需预先配置断点。

问题是我的测试中的异常被 Pytest 捕获,因此 PyCharm 的事后调试器无法处理异常。

我知道使用断点是可行的,但我不想运行我的测试两次。

在 Unittest 中找到了一种方法,我想知道 Pytest 中是否存在类似的东西。

有没有办法用 PyCharm 捕获单元测试异常?

0 投票
1 回答
493 浏览

pydev - Py.Test 使用 PyDev/Eclipse 静默跳过有错误的测试?

我一直在研究使用 Py.Test 在我一直在处理的一些代码中自动进行单元测试。我发现了以下行为:当我构建的测试有错误(否则会导致解释器出错)时,测试框架似乎完全忽略了测试。

我担心,当我实施更多测试时,我会把“这个测试有错误并且没有运行”误认为“这个测试通过了”。理想情况下,如果它有语法错误,我想在 Eclipse 中点击一个按钮并让单元测试失败。除了“你为什么不编写没有语法错误的代码?”之外,我还缺少另一种解决方案吗?

或者,有没有办法让 Py.Test 告诉你找到了哪些测试文件,以及运行了哪些文件?

安装程序是 PyDev 2.7.1 和 Eclipse 4.2,带有 Python 2.7.3 和 PyTest 2.3.4。