问题标签 [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.
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
- 由于 test_ 前缀,pytest 找到了 test_ehlo。测试函数需要一个名为 smtp 的函数参数。通过查找名为 smtp 的带有夹具标记的函数来发现匹配的夹具函数。
- smtp() 被调用来创建一个实例。
- test_ehlo() 在测试函数的最后一行被调用并失败。
python - 是否可以在 doctest 文件中使用 py.test 固定装置?
我们在项目中使用 py.test 并在大多数测试用例中使用fixture。但我认为不可能在 doctest 文件中使用固定装置。
举一个带有一些代码片段的示例:我在 conftest.py 中有一个浏览器夹具,例如:
并在文件 test_browser.txt 中使用它,例如:
但我看不到将夹具放入 doctest 文件的方法。py.test 有可能吗?
coverage.py - 如何配置 tox 以便它将在单个环境而不是全部环境上运行 pytest 覆盖?
我确实有一个复杂的 tox.ini 配置,其中包含不同版本的 python 的多个环境。
我想知道如何告诉 tox 只在默认的 python 解释器上运行覆盖。
问题之一是默认的 Python 环境可能因平台而异。
我确实有一个包装脚本,它调用tox -e py25,py26,docs
其中 -e 参数是检测到的 python 版本。
期望的行为:运行 pytest 覆盖单个环境(这应该与 jenkins 集成运行)。
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
。但是,收集仍然发生。
python - 如何使用 py.test 收集我的测试?
我尝试使用 py.test 收集我的测试,但它没有这样做。
我是否必须在命令行中提供其他选项?
Py.test 在我的 .py 文件的目录中执行。还有其他要求吗?
我的测试命名正确吗?在我的代码中,我将“Test-”用于类,“test_”用于方法。
终端的结果:
我正在测试的代码:
python - 传递给 pytest 夹具的参数可以作为变量传递吗?
我有两个简单的测试设置,我试图将它们组合在一个夹具中,并希望测试功能将“参数”传递给夹具。
这是一个人为的例子,来解释我的问题。假设我有以下 pytest 夹具:
我可以让上面的参数作为test_madeup
函数的输入传递吗?因此,类似于以下内容:
当然,上述方法是行不通的。实际情况要复杂一些,但我只想知道是否可以将函数传递params=['param1','param2']
给夹具test_madeup
。
python - py.test 不收集不是从“对象”继承的测试
我正在尝试使用测试所需的不同设置创建基类。我希望我的所有测试都继承自这个基类。作为跑步者,我使用py.test。
但是当我尝试这样做时,py.test 不会收集从Base类继承的这些测试,因此它不会运行它们。在文档中没有找到任何有用的信息。
也许有人以前遇到过这样的问题?有任何想法吗?
谢谢。
PS当测试从对象继承时一切正常。Py.test 看到它们并正确运行。
代码示例:
我的基类:
我的测试课:
输出:
python - 如何配置pycharm/intellij idea运行tox测试
是否可以配置 pycharm / intellij idea 来运行 tox 测试?我想在不同的 py 环境中针对不同的 python 版本测试我的代码。我试图配置它,但到目前为止我只设法配置单个 py.test 支持。
python - 在 pycharm/pydev 中调试 pytest 事后异常
我想将 PyCharm 的内置 Pytest 运行器与调试器一起使用,而无需预先配置断点。
问题是我的测试中的异常被 Pytest 捕获,因此 PyCharm 的事后调试器无法处理异常。
我知道使用断点是可行的,但我不想运行我的测试两次。
在 Unittest 中找到了一种方法,我想知道 Pytest 中是否存在类似的东西。
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。