04-13pytest的基本使用方法
1 我们有100个case的时候,有时候需要执行其中的20个,有时间需要执行其中的30个。
在pytest中有什么好的办法呢?
有人说我用LoadTestCase(),指定类加载
有人说,我用跳过,unittest.skip()
有人说我重写一个suite函数,再准备几个场景的用例组合
还有没有其他更方便的办法?
./conftest.py
| def pytest_configure(config): |
| marker_list = ["isneed","isnotneed","testmark3"] |
| for markers in marker_list: |
| config.addinivalue_line( |
| "markers", markers |
| ) |
./test_markers.py
| import pytest |
| |
| @pytest.mark.isneed |
| def test_case1(): |
| print(__name__) |
| assert True ,"makers OK " |
| |
| @pytest.mark.isnotneed |
| def test_case2(): |
| print(__name__) |
| assert True,"maekrs Not Ok" |
| (testops) >pytest test_markers.py -q -v -m isneed -s |
| ========================================================================= test session starts ========================================================================== |
| platform win32 -- Python 3.7.1, pytest-5.2.2, py-1.8.0, pluggy-0.13.0 |
| rootdir: D:\Coding\Project\testops\Stage5\07pytest\marker |
| plugins: html-2.0.0, metadata-1.8.0 |
| collected 2 items / 1 deselected / 1 selected |
| |
| test_markers.py::test_case1 marker.test_markers |
| PASSED |
| |
| =================================================================== 1 passed, 1 deselected in 0.01s ==================================================================== |
从运行结果来看,我们只运行了test_case1,还有要给test_case2没有运行,这说明marker的筛选机制起作用了。
另外在conftest.py需要提前进行marker的声明。config.addinivalue_line 就是在执行这个声明的操作。
2 多个标签的声明使用conftest.py 在其中进行config.addinivalue_line。
1 标记改造和迭代怎么使用?
2 是不是可以给那些不确定是否要执行的case加上标签,以后不需要执行的时候就带上标签。