import pytest
"""
使用pytest编写用例,必须遵守以下规则:
(1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)
(2)测试方法必须以“test_”开头。
(3)测试类命名以"Test"开头。
"""
"""
@pytest.fixture(scope='')
function:每个test都运行,默认是function的scope
class:每个class的所有test只运行一次
module:每个module的所有test只运行一次
session:每个session只运行一次
"""
@pytest.fixture(scope='function')
def setup_function(request):
def teardown_function():
print("teardown_function called.")
request.addfinalizer(teardown_function) # 此内嵌函数做teardown工作
print('setup_function called.')
@pytest.mark.website
def test_1(setup_function):
print('Test_1 called.')
@pytest.fixture(scope='module')
def setup_module(request):
def teardown_module():
print("teardown_module called.")
request.addfinalizer(teardown_module)
print('setup_module called.')
def test_2(setup_module):
print('Test_2 called.')
def test_3(setup_module):
print('Test_3 called.')
assert 2==1+1
if __name__ == '__main__':
"""
Console参数介绍
-v 用于显示每个测试函数的执行结果
-q 只显示整体测试结果
-s 用于显示测试函数中print()函数输出
-x, --exitfirst, exit instantly on first error or failed test
-h 帮助
"""
"""
报告参数 _report.html ./_report.html ./report/_report.html ../report/_report.html #./当前文件夹,../上个文件夹
--resultlog=./log.txt
--junitxml=./log.xml
--pastebin=all
--html=./report.html
"""
#两者方法相同,执行该目录下所有的test文件
#pytest.main()
#pytest.main(["D:\codeBook\pyhton\shuzf_demo\other\pytest"])
# pytest.main(['run_pytest.py'])
# pytest.main(['-q', 'run_pytest.py']) #多了版本信息
# pytest.main(['-s', 'run_pytest.py']) #以print信息显示
# pytest.main(['-s', 'run_pytest.py', '--html=_report.html'])
来源:https://www.cnblogs.com/shuzf/p/11792745.html