欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > pytest入门一:用例的执行范围

pytest入门一:用例的执行范围

2025/2/21 3:23:12 来源:https://blog.csdn.net/daxiashangxian/article/details/144442958  浏览:    关键词:pytest入门一:用例的执行范围

从一个或多个目录开始查找,可以在命令行指定文件名或目录名。如果未指定,则使用当前目录。

  • 测试文件以 test_ 开头或以 _test 结尾

  • 测试类以 Test 开头 ,并且不能带有 init 方法

  • 测试函数以 test_ 开头

  • 断言使用基本的 assert 即可

  • 所有的包 pakage 必须要有__init__.py 文件

# test_2.py
import sysimport pytestdef add(x,y):return x + y@pytest.mark.add
def test_add():assert add(1,2) == 3assert add(2,3) == 5assert add(10,2) == 12def is_win32():return True if sys.platform == 'win32' else Falseclass TestDemo:def test_demo(self):x = "hello world"print(f"{x} python")assert 'h' in x@pytest.mark.skipif(sys.platform == 'win32',reason='win32跳过用例')def test_demo3(self):x = "hello world"print(f"{x} python")assert 'h' in xonly_win32 = pytest.mark.skipif(is_win32(),reason='win32跳过用例')@only_win32def test_demo4(self):x = "hello world"print(f"{x} python")assert 'h' in x@pytest.mark.skip("变更")def test_demo2(self):x = 'hello'assert hasattr(x,"check")@pytest.mark.xfail(reason="bug待修复")def test_demo5(self):x = 'hello'assert hasattr(x, "check")if __name__ == "__main__":pytest.main(['-v', '-s'])

1)执行全部

if name == "__main__": pytest.main(['-v', '-s'])

2)执行某个文件 

if name == "__main__":
    pytest.main(['-v', '-s','test_2.py'])

 3)执行某个类

if name == "__main__":
    pytest.main(['-v', '-s','test_2.py::TestDemo'])

4) 执行某个方法

if name == "__main__":
    pytest.main(['-v', '-s','test_2.py::TestDemo::test_demo'])

5) mark 打标执行  pytest.mark.add

6) skip忽略执行  @pytest.mark.skip("变更")

7) 条件忽略skipif    @pytest.mark.skipif(sys.platform == 'win32',reason='win32跳过用例')

8)xfail:预期失败 @pytest.mark.xfail

真失败会显示xfailed,成功会显示xpassed,应用场景:已知bug标注,后续验证修复

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词