问题标签 [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.
pytest - py.test 可以支持多个 -k 选项吗?
py.test 可以支持多个 -k 选项吗?每个测试用例都属于一个特定的组,例如 _eventnotification 或 _interface 等。是否可以同时运行属于其中一个或两个的测试用例?即,同时运行名称中包含 _eventnotification 或 _interface 的测试用例。我尝试了以下方法,只执行了带有 _interface 的测试用例。如果不支持,还有其他方法吗?
py.test -k "_eventnotification" -k "_interface"
python - Python/tox,在测试前启动一个进程,完成后关闭它
我正在使用Tox检查我正在开发的系统在安装在新环境中时是否运行良好(+ 完整性检查setup.py
文件)。但是,系统使用memcached
服务器,理想情况下,我希望每次Tox
运行都生成一个新服务器。
在运行测试之前启动程序(然后关闭它们)是否有首选方法,或者我需要编写自定义运行程序?
编辑:测试运行器是py.test
python - 在 pytest 中,如何确定测试是否失败?(来自“请求”)
我正在使用 Selenium 和 PYTEST 来测试一个站点。我想在测试失败时(并且仅在失败时)截取页面的屏幕截图。
有没有办法我可以做到这一点?文档对此很安静(或者我找不到)。我会假设它会像
它会返回一个布尔值或其他东西。
这就是我想做的:
当然,这将被添加到终结器中。可以做到吗?使用 pytest 2.3.3
谢谢。
python - 如何在 PyScripter 中运行 Py.test
我是 py.test 的新手,请告诉我如何在 PyScripter Editor 中运行 py.test。我已经尝试过以下方式,但它不起作用。
导入pytest
def func(x): 返回 x + 1
def test_answer(): 断言 func(3) == 5
pytest.main()
在运行上述脚本时,我收到一条错误消息
请帮帮我
python - py.test:如何自动检测子进程中的异常?
我在一个大量使用多处理的模块的上下文中在 Linux 上运行 py.test。子进程中的异常不会被检测为错误。示例测试文件pytest_mp_test.py
:
执行:
未检测到错误。使用以下命令调用时会打印异常-s
:
当我手动查看测试日志时,我意识到什么时候有问题。但是,我想知道是否有一种巧妙的方法可以在使用 py.test 的孩子中自动检测异常。
我必须在父母中验证孩子的退出代码吗?这是唯一的方法吗?
python - 如何显示使用 py.test 时跳过某些测试的原因?
我使用skipIf()
fromunittest
在某些情况下跳过测试。
如何告诉py.test
显示跳过条件?
我知道对于 unittest 我需要启用详细模式(-v
),但是添加到 py.test 的相同参数会增加详细程度,但仍不显示跳过原因。
python - 在 pytest 中,如何访问传递给测试的参数?
在 pytest 中,我可以传递参数进行测试(使用固定装置或装饰器@pytest.fixture(params=list-of-params)
)。
测试完成后,如果测试失败,则通过的参数会显示在结果中,如TestCheckoutPage.test_address_edit[True]
或False
如果它为假。
如何访问这些参数并将它们添加到终结器?request.param
似乎不起作用,即使这是制作夹具时获取参数的方式:
这样可行。但是,如果我尝试将其传递给测试:
然后,使用 autouse 固定装置收集有关它的信息:
这会引发一个错误,说没有param
in FixtureRequest
。
有没有办法可以取回该参数?我试图让 Selenium 在测试失败时截取屏幕截图,但是因为带有参数的测试具有相同的名称和类名等等,它正在为第一次执行编写一个文件,然后在第二次、第三次、... ,时间。所以我想将参数添加到文件名中以避免这种情况。
谢谢!
python - Scons 在不同的子目录中运行 py.test
我们有一个包含多个 Python 包(*)的大型存储库。我希望 scons在每个子目录中而不是从项目根目录中运行 py.test。这证明相当令人沮丧。目前,我已经删除了所有错误检查的此操作:
我在SConstruct
文件中调用它:
在每个SConscript
文件中,我都有这个:
我得到的是只有一个 py.test 实例运行。我可以看到“Doing directory X”消息,但没有运行 py.test。
显然,不需要在 SConscript 中克隆环境,或者如果克隆了 env,请确保添加到 TEST_DIR_LIST 的内容发生在原始 env 上。
所以,我的问题有两个:
- 这是做我想做的事的明智方式吗?
- 如果是,我做错了什么?如果不是,我该怎么办?
(*)是的,我们正在考虑改变这一点。不,它不会很快发生,所以我确实需要上述内容。
pytest - 如何为某些测试停用 django 插件?
我正在为 Django 运行一些测试,并为使用 Selenium 的网站运行一些其他测试。
我对测试框架的选择是惊人的Pytest。
为了测试 Django,我目前已经安装了pytest-django 插件,并且 Django 的测试按预期运行,但是现在我回到了我以前不需要 Django 插件的测试。
我开始测试,Django 插件被自动拾取。
我检查了文档并找到了解释如何禁用\停用插件的文章,但是当我运行此命令时:
我收到一条错误消息,指出我的“DJANGO_SETTINGS_MODULE”不在 sys.path 上。
还
命令如:
或者
给我同样的错误。看起来 Django 插件越来越深入了?当我只是检查版本或“已安装的插件”时,为什么会调用它?
问题:有什么方法可以在不卸载的情况下暂时停用此插件?
python - pytest 和覆盖率组合不起作用
我从这里安装了 pytest 插件:http: //pypi.python.org/pypi/pytest-cov。然后我有一个简单的测试代码:
pytest.py:
我试图用命令测试它:py.test --cov-report term --cov pytest.py
。但它不起作用。即使我给出了 pytest.py 的整个绝对路径,它仍然没有数据可供收集。但是,如果我使用py.test pytest.py
,肯定它测试正常。
我对这个问题感到非常困惑,感谢您的帮助。