pytest 相关问题

使用Python进行简单强大的无样板测试。还要为`pytest`标记的问题添加`python`标签。

Pytest:在测试之外访问 addoption arg

我想在 pytest 中设置一个可选参数,并在 test_ 方法之外访问它。 我有一个 conftest.py 文件定义一个参数: def pytest_addoption(解析器): parser.addoption('--mode', ac...

回答 1 投票 0

如何使用pytest查看python中是否存在class attribute属性?

我是一名技术老师,试图学习如何使用 pytest 为我的学生创建专业的 koans 来学习 python 语法。 (如果你检查之前的问题,我有关于这里发生的事情的详细信息......

回答 1 投票 0

如何从selenium pytest中的标签中查找文本

我需要使用 Selenium、python、pytest UI 从元素中的文本中捕获付款 ID。文本的格式为“Payment 3022594”。 我正在尝试这样的事情。

回答 1 投票 0

将固定装置添加到标记的测试中

我使用 pytest 编写测试。我需要在一些测试之前和之后做某些事情。如果用 some_marker 标记,如何自动将 some_fixture 设置为测试函数? 为了实施...

回答 1 投票 0

如何使用 pytest-django 在测试之间将数据保存到数据库?

在 Django 应用程序的测试运行中使用 pytest/pytest-django 时,如何将数据保存到数据库? 我使用 py.test --nomigrations --reuse-db -s 和 Postgres DB test_ 运行 pytest 在 Django 应用程序的测试运行中使用 pytest/pytest-django 时如何将数据保存到数据库? 我使用 py.test --nomigrations --reuse-db -s 运行 pytest,并且 Postgres DB test_<configured_db_name> 按预期创建,但是在测试之间似乎没有任何内容被持久化到数据库,并且在测试运行结束时数据库为空。 import pytest from django.contrib.auth.models import User @pytest.mark.django_db(transaction=False) def test_insert_user(): user = User.objects.create_user(username="test_user", email="[email protected]", password="test") users = User.objects.all() assert len(users) > 0 @pytest.mark.django_db(transaction=False) def test_check_user(): users = User.objects.all() assert len(users) > 0 第一个测试通过了,第二个测试并没有让我怀疑是否有任何东西被持久化到数据库。根据 pytest-django 文档 @pytest.mark.django_db(transaction=False) 不会回滚受装饰测试影响的任何内容。 谢谢你, /大卫 为每个函数预填充数据库的另一种方法是这样的: import pytest from django.contrib.auth.models import User @pytest.fixture(scope='module') def django_db_setup(django_db_setup, django_db_blocker): print('setup') with django_db_blocker.unblock(): User.objects.create(username='a') assert set(u.username for u in User.objects.all()) == {'a'} @pytest.mark.django_db def test1(): print('test1') User.objects.create(username='b') assert set(u.username for u in User.objects.all()) == {'a', 'b'} @pytest.mark.django_db def test2(): print('test2') User.objects.create(username='c') assert set(u.username for u in User.objects.all()) == {'a', 'c'} 这个方法的好处是 setup 函数只调用一次: plugins: django-3.1.2 collected 2 items mytest.py setup test1 .test2 . =================== 2 passed in 1.38 seconds ==================== 不好的是,对于这样一个简单的测试来说,1.38 秒有点太多了。 --reuse-db 是一种更快的方法。 我已经解决了这个问题——为每个函数预填充数据库——通过定义一个范围为 function 的固定装置(即 model 和 session 不起作用)。 这是在 Django 中测试视图的代码。 # This is used to fill the database more easily from mixer.backend.django import mixer import pytest from django.test import RequestFactory from inventory import views from inventory import services pytestmark = pytest.mark.django_db @pytest.fixture(scope="function") def fill_db(): """ Just filling the DB with my data """ for elem in services.Search().get_lookup_data(): mixer.blend('inventory.Enumeration', **elem) def test_grid_anonymous(fill_db): request = RequestFactory().get('/grid/') response = views.items_grid(request) assert response.status_code == 200, \ "Should be callable by anyone" def test_list_anonymous(fill_db): request = RequestFactory().get('/') response = views.items_list(request) assert response.status_code == 200, \ "Should be callable by anyone"

回答 2 投票 0

HTTPException 的 Pytest 断言问题:500

我在测试一个非常简单的 FastAPI 端点时遇到问题,并且无法断言 HTTPException: 500。 这是我的端点从客户端获取 AuthenticationRequest 以从外部获取令牌

回答 1 投票 0

pytest 装置按什么顺序执行?

对于我正在测试的应用程序,我想创建一个 autouse=True 固定装置,如果他们尝试意外发送电子邮件,它会对 smtplib.SMTP.connect 进行猴子修补以使测试失败。 但是,如果...

回答 5 投票 0

Github Actions 中与 postgres 的连接被拒绝

我有一个带有 Postgres 默认数据库的 Django 应用程序,在 docker 中运行。我还使用 Github actions 作为 CI。当我使用命令在本地运行测试时 docker-compose run --rm app sh -c "python

回答 2 投票 0

pytest 仅运行更改的文件?

我对Python相当陌生,正在尝试学习工具集。 我已经弄清楚如何让 py.test -f 在编码时观看我的测试。我还没弄清楚的一件事是是否有办法做到

回答 6 投票 0

使用 QT 运行 pytest 时出现致命 Python 错误

我是 pytest 新手,在尝试运行我的测试文件之一时遇到问题。我得到以下输出: ===================================================测试开始=============...

回答 4 投票 0

Azure PublishCodeCoverageResults@2 问题,包含详细的覆盖范围报告

我正在尝试将 PublishCodeCoverageResults 从 @1 切换到 @2。因为管道中出现警告 ##[警告]新的 V2 版本任务发布代码覆盖率结果可供我们所有的自定义使用...

回答 1 投票 0

Selenium Pytest ValueError:设置未产生值

我有一个名为“test_invoice.py”的测试套件(使用selenium python pytest),其中有几个测试。 同样,我在其他名为“test_...

回答 1 投票 0

在 pytest 的自动使用装置中使用 caplog

我想用一个固定装置包装所有测试,在固定装置中检查使用 loguru 记录的日志是否有错误消息。 我试过这个: @pytest.fixture(autouse=True) def assert_no_log_error(caplog): 产量...

回答 1 投票 0

有什么自动化方法可以查看conftest.py文件中定义的pytest装置/函数的网络吗?

我继承了一个大型数据科学工作流程(Python),它使用分散在许多模块中的许多函数。对我来说幸运的是,这些函数中大约 50% 已经具有 pytest 覆盖率并使得......

回答 1 投票 0

如何使用具有参数的函数/固定装置覆盖 FastApi app.dependency_overrides?

我使用 deb 连接的固定装置设置了测试(基于 SQLAlchemy)。这里的主要特点是它正在回滚事务(测试没有更改数据库): @pytest.fixture(范围=...

回答 1 投票 0

运行 pytest 测试时如何覆盖从另一个模块导入的变量?

我正在努力测试更改存储在一个模块中并在另一个模块中使用的变量值的效果。这是一个最小的例子: 我有一个名为 settings.py 的脚本: 来自 pydantic imp...

回答 1 投票 0

在 pytest 参数化中传递函数

我想知道是否可以通过参数化传递一个函数,而不是一个可迭代的夹具? 例如,我想做这样的事情。 导入pytest @pytest.fixture def 样本数据(): ...

回答 2 投票 0

python pytest 有时会失败并出现 OSError: 在捕获输出时从 stdin 读取

使用 pytest 运行特定的单元测试时,它偶尔会因此错误而失败(标题中提到),并且从堆栈跟踪来看,它发生在行上 选择 = input().lower() 当c...

回答 4 投票 0

在不同进程中运行 py.test 测试

我正在尝试测试张量流程序。我正在使用参数化 py.test 夹具设置张量流会话: @pytest.fixture(范围=“会话”,参数=配置) def 会话(请求): 如果需要...

回答 2 投票 0

如何在pytest中测试文件上传?

如何在使用 json.dumps 时序列化文件对象? 我正在使用 pytest 来测试 django 中的文件上传,并且我有这个功能 def test_file_upload(自身): # file_content 是一个字节测试对象...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.