实际的自动化测试项目中,我们的用例通常会放在多个py文件中,如果我们只想运行其中部分用例,该怎么做呢?pytest提供的mark功能能够帮助我们解决这个问题。下面看具体做法。
1. 推荐使用pytest.ini配置文件注册标签
[pytest]
markers =
you:this is you
me:this is me
2. 在测试方法上打标签
test_a.py中
# 用例
import pytest
class TestMark:
@pytest.mark.me
def test_weibo(self):
assert 1+1==2
@pytest.mark.me
def test_toutiao(self):
assert 1+2==3
@pytest.mark.you
def test_xinlang(self):
assert 1+3==4
test_b.py
import pytest
@pytest.mark.me
class TestAssertAssume:
def test_assert(self):
assert 1 + 1 == 2
assert 1 + 2 == 3
assert 1 + 3 == 5
assert 1 + 4 == 5
print("执行完成1")
def test_assume(self):
pytest.assume(1 + 1 == 2)
pytest.assume(1 + 2 == 3)
pytest.assume(1 + 3 == 5)
pytest.assume(1 + 4 == 6)
print("执行完成2")
2. 如何运行
命令行运行:
# 如果只需要执行打了me标记的用例
pytest -s -m "me"
# 如果想执行没有打me标记的用例,取反
pytest -s -m "not me"
# 如果想执行打了me和you标记的用例
pytest -s -m "me or you"
main函数运行:
import pytest
if __name__ == '__main__':
pytest.main(['-m','me']) # 只执行打了me标记的用例