pytest中的fixture和conftest.py

简介: pytest中的fixture和conftest.py

pytest中fixture的使用

1. fixture的作用是一个公共类型,可以在一个类、或者一个模块、或者整个session中被共享,加上范围即可。

  • 加入scope=“module”的参数,可以让fixture function在每次模块测试的时候只请求一次。这样不同的test function在同一个test module中接收到的 fixture参数都是一样的。共享使用。
  • 在一个类中使用:@pytest.fixture(scope="class")
  • 在全部会话中使用:@pytest.fixture(scope="session")

2. fixture也可以单独存放

  • 有的时候为了方便配置和访问,也可以将这样的fixture放到conftest.py文件中单独存放。

3. 同一个模块里出现多个范围的装饰

  • 当出现多个范围装饰的时候,优先实例化范围优先级高的。
  • 优先级从大到小:session-->module–->class–->function

4. fixture中的参数 autouse

  • 关于autouse,默认是False,只在当前module下有效
  • 如果你想一个module下的都用上,那就打开改成True, 如下,这样就不需要往每个函数里传入fixture。
  • 文件中同时包含了function,class,就不可以使用autouse了,否则function也会执行到

5. 当scope='session'时,要注意的点

  • 如果你的scope='session',那么不要像function,class,module那样,和case放在一起,我们要放在另一个文件,conftest.py下,才可以。

conftest.py的作用

  • 所有同目录测试文件运行前都会执行conftest.py文件 不需要import导入;
  • conftest.py,pytest用例会自动识别该文件,放到项目的根目录下就可以全局目录调用了,如果放到某个package下,那就在该package内有效,可有多个conftest.py;
  • conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件;
  • 可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture。

参考链接:

https://zhuanlan.zhihu.com/p/87775743https://www.jb51.net/article/250217.htm

相关文章
|
测试技术 Python
Pytest简单介绍
Pytest简单介绍
83 0
|
测试技术 Python
pytest--fixture
pytest--fixture
|
Web App开发 测试技术
10-pytest-parametrize中使用fixture
10-pytest-parametrize中使用fixture
|
测试技术 Python
05-pytest-通过confest.py共享fixture
05-pytest-通过confest.py共享fixture
|
测试技术
pytest conftest.py和fixture的配合使用
pytest conftest.py和fixture的配合使用
|
测试技术
pytest学习和使用9-fixture中conftest.py如何使用?
pytest学习和使用9-fixture中conftest.py如何使用?
137 0
pytest学习和使用9-fixture中conftest.py如何使用?