命令行输入测试用例、乘客账号、司机账号,怎么通过@pytest.fixture实现执行是替换参数
时间: 2024-01-09 08:03:48 浏览: 114
可以使用 pytest 的 fixture 功能和命令行参数插件 `pytest-cmdline-parser` 来实现。首先,在 conftest.py 文件中定义一个 fixture 函数,该函数接收命令行参数并返回一个包含替换后账号的元组。
```python
import pytest
from AccountManager import AccountManager
def pytest_addoption(parser):
parser.addoption('--passenger', action='store', help='passenger account')
parser.addoption('--driver', action='store', help='driver account')
@pytest.fixture
def replace_accounts(request):
passenger = request.config.getoption('--passenger')
driver = request.config.getoption('--driver')
return (AccountManager(ctx=self.ctx, account=passenger),
AccountManager(ctx=self.ctx, account=driver))
```
然后,在测试用例中使用这个 fixture 函数作为参数,将替换后的账号传递给测试用例。在命令行中输入要替换的账号。
```python
def test_dGetBlacklist(self, replace_accounts):
with replace_accounts[0], replace_accounts[1]:
# 执行测试用例
pass
```
在命令行中输入以下命令来执行测试用例并替换账号:
```
pytest --passenger=your_passenger_account --driver=your_driver_account
```
这样,在执行测试用例时,pytest 将自动调用 `replace_accounts` 函数来替换账号参数。
阅读全文