pytest.ini 配置路径问题 和运行测试用例相对路径问题

文章详细解释了pytest.ini中testpaths和addopts配置项的路径理解,强调它们相对于pytest.ini和测试用例文件的不同。还提到了在main.py中运行测试与直接运行testcase.py时,相对路径如何影响testdata的查找。对于allure报告和日志文件,正确配置路径是关键,应根据运行方式调整为工程目录或上一级目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytest.ini 配置的路径问题。

1,testpaths,是指相对于pytest.ini这个文件的相对路径,一般pytest.ini存放在工程目录下,testpaths配置的是./testcase,会在当前工程目录下面找到testcase目录,这个基本没问题,很好理解。
在这里插入图片描述
2, addopts 配置的allure 临时tep 文件(json 报告),和log_file的路径,
注意是指相对于运行的测试用例testcase.py文件的相对路径。
和上面第1点不同的是,不会生成在工程目录下面,如果你配置的是./logs 或者 ./json_report , 运行后会发现allure 临时报告和日志文件夹都生成到testcase这个目录下面了。
改成…/logs 或者 …/json_report 后,才会生成到工程目录下面。

补充下运行测试用例的相对路径问题。
1,如果你是用main.py文件运行测试用例,因为main.py在工程目录下面,所以你的相对路径都要改成./ ,不要用…/ ,否则你的testcase.py 在用相对路径找testdata时,会报错,提示找不到文件。因为你的工程目录的上一层目录,是没有testdata的。
2, 如果你是单独运行一个testcase.py文件,单独跑测试用例,代码里面的相对路径,特别是读取testdata的代码,需要把相对路径改成…/,不要用./, 否则你单独跑用例,在当前目录是找不到testdata的,会报错,提示找不到文件。因为必须要到用例的上一层才可以找到testdata。
在这里插入图片描述
在这里插入图片描述

<think>我们被要求配置pytest.ini文件以支持多个执行路径。根据引用[1]引用[3],我们可以使用`testpaths`选项来指定测试用例路径。但是,引用中只提到了单个路径配置。实际上,`testpaths`可以接受多个路径,这些路径应该是相对于项目根目录的路径,并且以列表的形式提供。 在pytest.ini配置多个执行路径的步骤: 1.pytest.ini文件中,找到`[pytest]`部分。 2. 使用`testpaths`选项,后面跟上多个路径,用空格分隔。 例如,假设我们有两个测试目录:`tests``integration_tests`,我们可以这样配置: ```ini [pytest] testpaths = tests integration_tests ``` 这样配置后,当运行pytest时,它会在这两个目录中搜索测试文件。 另外,引用[1]中提到了`testpaths`的配置示例:`testpaths = …/pytestproject`,这表示一个路径。我们可以扩展为多个路径。 注意:路径可以是相对路径,也可以是绝对路径,但通常使用相对路径(相对于项目根目录)。 如果我们的项目结构如下: ``` project_root/ ├── pytest.ini ├── tests/ │ └── test_example.py └── integration_tests/ └── test_integration.py ``` 那么pytest.ini中的配置就是: ```ini [pytest] testpaths = tests integration_tests ``` 这样,运行pytest时,它会同时运行`tests``integration_tests`目录下的测试。 另外,引用[3]中还提到了`addopts`,这是用来添加默认的命令行参数的,与路径无关。所以,我们只需关注`testpaths`。 因此,针对用户的问题配置多个执行路径的方法就是在`testpaths`后面用空格分隔多个目录。 **相关问题**: 1. 如何在pytest.ini配置测试文件的匹配模式? 2. 除了testpaths,还有哪些配置可以控制测试搜索路径? 3. 如何让pytest同时运行多个目录下的测试并生成单独的报告?</think>### 配置 pytest.ini 支持多执行路径pytest.ini配置多个执行路径,需要使用 `testpaths` 选项并遵循以下格式: ```ini [pytest] testpaths = path/to/first_test_dir path/to/second_test_dir path/to/third_test_dir ``` #### 详细说明: 1. **选项名称**:`testpaths`(固定关键字) 2. **路径格式**: - 每行一个路径 - 路径使用相对路径(相对于 pytest.ini 所在目录) - 路径不需要引号包裹 3. **示例配置**: ```ini [pytest] testpaths = tests/unit tests/integration api_tests ui_tests/selenium ``` #### 注意事项: 1. 路径分隔符: - Windows 使用 `/` 或 `\`(推荐统一使用 `/`) - Linux/macOS 使用 `/` 2. 路径搜索规则: - pytest 会递归扫描所有子目录 - 自动识别 `test_*.py` 文件 `Test*` 类(可通过 `python_files` `python_classes` 修改) 3. 验证配置: ```bash pytest --collect-only # 显示所有发现的测试用例 ``` #### 完整配置示例: ```ini [pytest] addopts = -v --tb=short testpaths = core/tests modules/payment/tests legacy_tests python_files = test_*.py check_*.py python_classes = Test* Check* ``` > 提示:当需要同时指定路径文件过滤规则时,`testpaths` 的优先级高于默认的当前目录搜索[^1][^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值