当前位置: 首页>編程日記>正文

pycharm运行pytest参数化运行teardown错误

pycharm运行pytest参数化运行teardown错误

pycharm运行pytest参数化运行teardown错误

最近在学习pytest,遇到一个令人费解的问题,在使用pycharm中多次运行参数化的pytest之后,teardown的执行效果发生错误,让我们来看看是如何发生的吧。

参数化运行pytest

class TestC():def setup(self):print("start")def teardown(self):print("end")@pytest.mark.parametrize("data",[1,2,3,4,5,6,7,8,9,10])def test1(self,data):print(data)

这是一段简单的代码在运行test1方法打印前后会分别打印“start”和“end”,使用的参数化分别打印1到10

运行效果
test_cache.py::TestC::test1[1] start
1
PASSEDend
test_cache.py::TestC::test1[2] start
2
PASSEDend
test_cache.py::TestC::test1[3] start
3
PASSEDend
test_cache.py::TestC::test1[4] start
4
PASSEDend
......

这是正常的我们想要的效果,但是在多次使用pycharm运行pytest之后,异常出现了

......
test_cache.py::TestC::test1[8] endtest_cache.py::TestC::test1[9] endtest_cache.py::TestC::test1[10] end#忽略部分前后运行结果Process finished with exit code 0
start
1
PASSEDstart
2
PASSEDstart
3
PASSEDstart
......

对比发现,pycharm在后面的运行先帮我们执行了teardown的方法,这显然不是我们想要的运行顺序,我在项目中配置了pytest.ini生产allure报告的参数可能也会出现该问题,笔者认为应该是pycharm可能为了优化自己做了缓存,导致我们用pytest参数化的时候运行teardown会出现问题。

解决方法

使用命令行运行pytest
在这里插入图片描述
这样无论我们运行多少次都不会出现刚刚在pycharm中运行pytest的问题了。

bug复现

在这里插入图片描述
加上这句话会出现这个问题
在这里插入图片描述
不加的话就不会提前运行teardown方法

断点调试

使用断点调试后发现,运行顺序是没有问题的

在这里插入图片描述
end
在这里插入图片描述
start
在这里插入图片描述
test1

小结

可能不会影响到使用,但是在编写用例时确实是坑了我一把,欢迎大家在讨论区一起讨论,有错误的地方麻烦指出。


https://www.fengoutiyan.com/post/14806.html

相关文章:

  • pycharm无法启动
  • python was not found but
  • pycharm add new configuration
  • pycharm failed to create virtual
  • pycharm怎么配置python环境变量
  • pycharm错误提示
  • python object has no attribute
  • pycharm运行报错
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機