pytest 执行顺序
时间: 2023-10-26 19:27:28 浏览: 104
pytest的执行顺序是按照以下方式进行的:
1. 执行测试文件:pytest会搜索当前目录及其子目录中以"test_"或"_test"开头的Python文件,并执行这些文件中的测试用例。
2. 收集测试用例:pytest会收集测试用例函数,这些函数以"test_"开头并位于测试文件中。pytest还会收集以"Test"开头的测试类,并执行其中的测试方法。
3. 用例执行顺序:pytest默认按照测试文件中定义的顺序执行测试用例。如果需要指定用例执行顺序,可以使用pytest的`-k`参数指定用例名称,或使用pytest插件如pytest-ordering来控制用例执行顺序。
4. 用例运行过程:对于每个测试用例,pytest会在执行前调用`setup`方法(如果存在),然后执行测试代码,最后调用`teardown`方法(如果存在)。这些方法可以在测试文件或测试类中定义,用于设置和清理测试环境。
5. 测试报告和结果:pytest会生成详细的测试报告,其中包含每个测试用例的执行结果、耗时等信息。可以选择不同的报告格式,如文本、HTML、JUnit XML等。
总之,pytest按照收集到的测试文件和用例顺序执行,并生成相应的测试报告。可以通过参数和插件来控制用例执行顺序和自定义测试过程。
相关问题
pytest执行顺序
pytest执行顺序可以通过pytest-ordering插件中的标记来控制。通过在测试用例上使用@pytest.mark.run(order=x)标记,可以指定测试用例的执行顺序,其中x表示顺序编号。这需要先安装pytest-ordering插件,可以通过pip install pytest-ordering命令来安装。
另外,pytest还支持通过命令行参数来控制测试用例的执行顺序。使用pytest.main(['-vs', 'zmytest/test_order.py', '-m', "not g2 and not g1"])命令,可以跳过指定的测试用例,并按照默认的顺序执行其他测试用例。
如果想要深入了解fixture的执行顺序,可以参考pytest官方文档中的【pytest官方文档】解读fixtures - 11. fixture的执行顺序,3要素详解(长文预警)一文。该文档详细介绍了fixture的执行顺序的三个要素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [6. pytest用例执行顺序和跳过执行](https://blog.csdn.net/lzmlc0109/article/details/128829149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [【pytest官方文档】解读fixtures - 11. fixture的执行顺序,3要素详解.docx](https://download.csdn.net/download/yanyi0505/18125491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
pytest用例执行顺序
pytest执行用例的顺序是根据pytest框架的规则来确定的。pytest会按照以下顺序执行用例:
1. 根据指定的命令行参数或配置文件,pytest会搜索并收集所有符合条件的测试用例文件。
2. pytest会按照文件名的字母顺序对测试用例文件进行排序。
3. 对于每个测试用例文件,pytest会按照以下规则执行其中的测试用例:
- pytest会按照测试用例函数名的字母顺序执行测试用例。
- 如果测试用例函数有装饰器(如@pytest.mark.parametrize),pytest会根据装饰器的参数生成多个测试用例实例,并按照字母顺序执行这些实例。
- pytest会按照测试用例函数定义的顺序执行fixture函数(如果有)。
- 如果测试用例函数有依赖其他fixture函数,pytest会按照依赖关系先后执行这些fixture函数。
- pytest会在每个测试用例函数执行前后执行fixture函数(如果有)。
- pytest会在每个测试用例函数执行前后执行模块级别的fixture函数(如果有)。
4. pytest会在整个测试过程中记录并显示每个测试用例的执行结果。
阅读全文