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

pytest - py.test 可以支持多个 -k 选项吗?

py.test 可以支持多个 -k 选项吗?每个测试用例都属于一个特定的组,例如 _eventnotification 或 _interface 等。是否可以同时运行属于其中一个或两个的测试用例?即,同时运行名称中包含 _eventnotification 或 _interface 的测试用例。我尝试了以下方法,只执行了带有 _interface 的测试用例。如果不支持,还有其他方法吗?

py.test -k "_eventnotification" -k "_interface"

0 投票
3 回答
2425 浏览

python - Python/tox,在测试前启动一个进程,完成后关闭它

我正在使用Tox检查我正在开发的系统在安装在新环境中时是否运行良好(+ 完整性检查setup.py文件)。但是,系统使用memcached服务器,理想情况下,我希望每次Tox运行都生成一个新服务器。

在运行测试之前启动程序(然后关闭它们)是否有首选方法,或者我需要编写自定义运行程序?

编辑:测试运行器是py.test

0 投票
2 回答
10000 浏览

python - 在 pytest 中,如何确定测试是否失败?(来自“请求”)

我正在使用 Selenium 和 PYTEST 来测试一个站点。我想在测试失败时(并且仅在失败时)截取页面的屏幕截图。

有没有办法我可以做到这一点?文档对此很安静(或者我找不到)。我会假设它会像

它会返回一个布尔值或其他东西。

这就是我想做的:

当然,这将被添加到终结器中。可以做到吗?使用 pytest 2.3.3

谢谢。

0 投票
4 回答
1842 浏览

python - 如何在 PyScripter 中运行 Py.test

我是 py.test 的新手,请告诉我如何在 PyScripter Editor 中运行 py.test。我已经尝试过以下方式,但它不起作用。

导入pytest

def func(x): 返回 x + 1

def test_answer(): 断言 func(3) == 5

pytest.main()

在运行上述脚本时,我收到一条错误消息

请帮帮我

0 投票
2 回答
2551 浏览

python - py.test:如何自动检测子进程中的异常?

我在一个大量使用多处理的模块的上下文中在 Linux 上运行 py.test。子进程中的异常不会被检测为错误。示例测试文件pytest_mp_test.py

执行:

未检测到错误。使用以下命令调用时会打印异常-s

当我手动查看测试日志时,我意识到什么时候有问题。但是,我想知道是否有一种巧妙的方法可以在使用 py.test 的孩子中自动检测异常。

我必须在父母中验证孩子的退出代码吗?这是唯一的方法吗?

0 投票
2 回答
15530 浏览

python - 如何显示使用 py.test 时跳过某些测试的原因?

我使用skipIf()fromunittest在某些情况下跳过测试。

如何告诉py.test显示跳过条件?

我知道对于 unittest 我需要启用详细模式(-v),但是添加到 py.test 的相同参数会增加详细程度,但仍不显示跳过原因。

0 投票
1 回答
11561 浏览

python - 在 pytest 中,如何访问传递给测试的参数?

在 pytest 中,我可以传递参数进行测试(使用固定装置或装饰器@pytest.fixture(params=list-of-params))。

测试完成后,如果测试失败,则通过的参数会显示在结果中,如TestCheckoutPage.test_address_edit[True]False如果它为假。

如何访问这些参数并将它们添加到终结器?request.param似乎不起作用,即使这是制作夹具时获取参数的方式:

这样可行。但是,如果我尝试将其传递给测试:

然后,使用 autouse 固定装置收集有关它的信息:

这会引发一个错误,说没有paramin FixtureRequest

有没有办法可以取回该参数?我试图让 Selenium 在测试失败时截取屏幕截图,但是因为带有参数的测试具有相同的名称和类名等等,它正在为第一次执行编写一个文件,然后在第二次、第三次、... ,时间。所以我想将参数添加到文件名中以避免这种情况。

谢谢!

0 投票
1 回答
480 浏览

python - Scons 在不同的子目录中运行 py.test

我们有一个包含多个 Python 包(*)的大型存储库。我希望 scons每个子目录中而不是从项目根目录中运行 py.test。这证明相当令人沮丧。目前,我已经删除了所有错误检查的此操作:

我在SConstruct文件中调用它:

在每个SConscript文件中,我都有这个:

我得到的是只有一个 py.test 实例运行。我可以看到“Doing directory X”消息,但没有运行 py.test。

显然,不需要在 SConscript 中克隆环境,或者如果克隆了 env,请确保添加到 TEST_DIR_LIST 的内容发生在原始 env 上。

所以,我的问题有两个:

  1. 这是做我想做的事的明智方式吗?
  2. 如果是,我做错了什么?如果不是,我该怎么办?

(*)是的,我们正在考虑改变这一点。不,它不会很快发生,所以我确实需要上述内容。

0 投票
2 回答
1452 浏览

pytest - 如何为某些测试停用 django 插件?

我正在为 Django 运行一些测试,并为使用 Selenium 的网站运行一些其他测试。

我对测试框架的选择是惊人的Pytest

为了测试 Django,我目前已经安装了pytest-django 插件,并且 Django 的测试按预期运行,但是现在我回到了我以前不需要 Django 插件的测试。

我开始测试,Django 插件被自动拾取。
我检查了文档并找到解释如何禁用\停用插件的文章,但是当我运行此命令时:

我收到一条错误消息,指出我的“DJANGO_SETTINGS_MODULE”不在 sys.path 上。

命令如:

或者

给我同样的错误。看起来 Django 插件越来越深入了?当我只是检查版本或“已安装的插件”时,为什么会调用它?

问题:有什么方法可以在不卸载的情况下暂时停用此插件?

0 投票
1 回答
12363 浏览

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,肯定它测试正常。

我对这个问题感到非常困惑,感谢您的帮助。