1. 用例运行级别
- 模块级(setup_module/teardown_module)开始于模块始末,全局的
- 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
- 类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
- 方法级(setup_method/teardown_method)开始于方法始末(在类中)
- 类里面的(setup/teardown)运行在调用方法的前后
2. 函数式
- setup_function/teardown_function:每个用例开始和结束调用一次
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/18 3. # @Author : 大海 4. import os 5. import pytest 6. 7. 8. # 函数式 9. def setup_function(): 10. print("setup_function:每个用例开始前都会执行") 11. 12. 13. def teardown_function(): 14. print("teardown_function:每个用例结束后都会执行") 15. 16. 17. def test_one(): 18. print("正在执行----test_one") 19. x = "this" 20. y = "this is pytest" 21. assert x in y 22. 23. 24. def test_two(): 25. print("这是用例2") 26. x = "selenium" 27. assert "m" in x 28. 29. 30. def test_three(): 31. print("这是用例3") 32. a = 1 33. b = 2 34. assert a < b 35. 36. 37. if __name__ == "__main__": 38. file_path = os.path.abspath(__file__) 39. # print(file_path) 40. pytest.main(["-s", file_path])
- setup_module/teardown_module:所有用例开始执行前执行一次/所有用例执行结束后执行一次
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/18 3. # @Author : 大海 4. import os 5. import pytest 6. 7. 8. # 函数式 9. def setup_function(): 10. print("setup_function:每个用例开始前都会执行" + '22') 11. 12. 13. def teardown_function(): 14. print("teardown_function:每个用例结束后都会执行" + '222') 15. 16. 17. def setup_module(): 18. print("setup_module:所有用例执行前执行一次" + '11') 19. 20. 21. def teardown_module(): 22. print("teardown_module:所有用例执行后执行一次" + '111') 23. 24. 25. def test_one(): 26. print("这是用例1") 27. x = "this" 28. y = "this is pytest" 29. assert x in y 30. 31. 32. def test_two(): 33. print("这是用例2") 34. x = "selenium" 35. assert "m" in x 36. 37. 38. def test_three(): 39. print("这是用例3") 40. a = 1 41. b = 2 42. assert a < b 43. 44. 45. if __name__ == "__main__": 46. file_path = os.path.abspath(__file__) 47. # print(file_path) 48. pytest.main(["-s", file_path])
3. 类中使用
- setup/teardown:同unittest里面的setup/teardown的功能
- setup_class/teardown_class:同unittest里面的setupClass和teardownClass功能
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/18 3. # @Author : 大海 4. 5. import os 6. import pytest 7. 8. 9. # 类中使用 10. class TestCase(): 11. 12. def setup(self): 13. print("setup:每个用例开始前都会执行" + '11') 14. 15. def teardown(self): 16. print("teardown:每个用例结束后都会执行" + '222') 17. 18. def setup_class(self): 19. print("setup_class:所有用例执行前执行一次" + '11') 20. 21. def teardown_class(self): 22. print("teardown_class:所有用例执行后执行一次" + '111') 23. 24. 25. def setup_method(self): 26. print("setup_method:每个用例开始前都会执行" + '111') 27. 28. def teardown_method(self): 29. print("teardown_method:每个用例执行后执行一次" + '11') 30. 31. def test_one(self): 32. print("这是用例1") 33. x = "this" 34. y = "this is pytest" 35. assert x in y 36. 37. def test_two(self): 38. print("这是用例2") 39. x = "selenium" 40. assert "m" in x 41. 42. def test_three(self): 43. print("这是用例3") 44. a = 1 45. b = 2 46. assert a < b 47. 48. 49. if __name__ == "__main__": 50. file_path = os.path.abspath(__file__) 51. pytest.main(["-s", file_path])