我想将一个列表作为参数传递给基于if条件的夹具。有办法这样做吗?
例如,请参阅以下代码。
我想要实现的是,如果我在pytest中将奇数作为命令行参数中的num类型传递,那么作为参数传递给夹具的列表应该是奇数,参数偶数是偶数。
我使用pytest-xdist多次运行这个测试,因此我使用sys.stderr打印输出。
文件名: conftest.py
def pytest_addoption(parser):
parser.addoption('--type', action='store', help='Number of times to rep
我使用生产数据库进行测试(实际上它是docker中的测试数据库)。问题是:如何在此数据库的事务中运行测试。我需要与@pytest.mark.django_db(transaction=True)相同的行为,但与生产数据库相同。 当前设置: conftest.py @pytest.fixture(scope='session')
def django_db_setup():
"""Avoid creating/setting up the test database"""
pass
@pytest.fixtur
我在conftest.py中设置了一些配置,以便在特定情况下重新运行失败的pytest测试。 此函数已添加到conftest.py中。其思想是,通过使用请求装置将request.node.retry设置为True,可以将测试设置为重试。 def pytest_runtest_protocol(item, nextitem):
"""Checks for manual mark and if found, reruns test if requested"""
if item.get_closest_marker("manual"
我正在尝试将py.test的与我的单元测试结合在一起,与unittest一起使用。我在项目的顶层(如描述的)将几个夹具放在conftest.py文件中,用@pytest.fixture装饰它们,并将它们的名称作为需要它们的测试函数的参数。
安装程序注册正确,如py.test --fixtures test_stuff.py所示,但是当我运行py.test时,我得到了NameError: global name 'my_fixture' is not defined。这似乎只有在我使用unittest.TestCase-but的子类时才会发生-- py.test文档似乎说它与un
我想要实现的基本上是,但使用的是一个类范围的、参数化的夹具。
问题是,如果我从助手文件导入方法(generate_fixture and inject_fixture),那么注入夹具代码似乎被调用得太晚了。下面是一个完整的工作代码示例:
# all of the code in one file
import pytest
import pytest_check as check
def generate_fixture(params):
@pytest.fixture(scope='class', params=params)
def my_fixture(
我正在使用运行一些单元测试,但是得到了以下错误:
/usr/local/lib/python3.9/subprocess.py:1823: FileNotFoundError
FileNotFoundError: [Errno 2] No such file or directory: 'mysqld'
对于上下文,我正在为我们的CI管道在docker中运行这些测试,所以测试运行如下:
# run mysql
db_container_id=$(docker run -d -e MYSQL_ROOT_PASSWORD=Somepass123 -p 3306:3306 mysql
我很难弄清楚我的设置出了什么问题。我正在尝试测试一个登录视图,无论我尝试什么,我都会得到: Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it. 我的测试: import pytest
from ..models import User
@pytest.mark.django_db
def test_login(client):
# If an anonymous