当前位置:网站首页>Pytest's collection use case rules and running specified use cases
Pytest's collection use case rules and running specified use cases
2022-07-06 09:00:00 【Automated test seventh uncle】
Preface
Hello, guys , Today I will explain it to you pytest How to collect the use cases we have written ? How can we run individual use cases or batch use cases ? Now I'll answer for you one by one !
One 、Pytest Collect use case principles
First of all, we will create our project according to the following directory structure
[pyttest Rules for searching test cases ]
|[ Test case catalog 1]
| |__init__.py
| |test_ Test module 1.py
| |test_ Test module 2.py
|[ Test case catalog 2]
| |__init__.py
| |test_ The test case 1.py
| | The test case .py
|test_ Test module .py
| The test case 2.py
Two 、 Code instance
# test_ Test module 1.py
def test_testFunc1():
print('\n I'm a test case ! in test_testFunc1')
assert 1 == 1
def func1():
print(' I'm not a test case ')
assert 1 == 1
# test_ Test module 2.py
class TestClass1(object):
def test_class_func1(self):
print('\n I'm a test case in a class in test_class_func1')
assert 1 == 1
def class_func1(self):
print(' I'm a normal function in a class !')
# test_ The test case 1.py
class TestClass2(object):
def test_class_func2(self):
print('\n I'm a test case in a class in test_class_func2',)
assert 1 == 1
def class_func2(self):
print(' I'm a normal function in a class !')
def test_testFunc2():
print('\n I'm a test case in test_testFunc2!')
assert 1 == 1
def func2():
print(' I'm not a test case ')
assert 1 == 1
# The test case .py
def test_testFunc3():
print('\n I'm a test case ! in The test case .py')
assert 1 == 1
def func3():
print(' I'm not a test case ')
assert 1 == 1
# test_ Test module 3.py
def test_testFunc4():
print('\n I'm a test case ! in test_testFunc4')
assert 1 == 1
def func4():
print(' I'm not a test case ')
assert 1 == 1
class TestClass3(object):
def test_class_func3(self):
print('\n I'm a test case in a class in test_class_func3')
assert 1 == 1
def class_func3(self):
print(' I'm a normal function in a class !')
# The test case 2.py
def test_testFunc5():
print('\n I'm a test case ! in test_testFunc5')
assert 1 == 1
def func5():
print(' I'm not a test case ')
assert 1 == 1
Let's use cmd Command to execute this project , See how many use cases are valid ? open cmd Switch to the root of the project to execute the command pytest -v
D:\pytest Search test case rules >pytest -v
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest Search test case rules , inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 6 items
test_ Test module 3.py::test_testFunc4 PASSED [ 16%]
test_ Test module 3.py::TestClass3::test_class_func3 PASSED [ 33%]
Test case catalog 1/test_ Test module 1.py::test_testFunc1 PASSED [ 50%]
Test case catalog 1/test_ Test module 2.py::TestClass1::test_class_func1 PASSED [ 66%]
Test case catalog 2/test_ The test case 1.py::TestClass2::test_class_func2 PASSED [ 83%]
Test case catalog 2/test_ The test case 1.py::test_testFunc2 PASSED [100%]
========================== 6 passed in 0.59 seconds ===========================
The running result shows that there are 6 Use cases passed, And a detailed list of which 6 strip , So the use cases we wrote above are not just 6 strip , So why only run 6 Striped cloth ? Combining the above code structure with our execution results , We should be able to find such laws
Pytest Will start from the directory we are currently running to find all directories , Looking to test_ The beginning of the file and all of the files with test_ The functions that start with and start with Test Classes and classes that start with test_ The first function is the test case . That's why it only works 6 Test cases !
3、 ... and 、Pytest Run the specified test case
We still use the above project as a demonstration (cdm Switch to the root of the project )
3.1 Run all use cases in the specified directory
We specify the run test case Directory 1 All the use cases in it (pytest -v Test case catalog 1)
D:\pytest Search test case rules >pytest -v Test case catalog 1
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest Search test case rules , inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 2 items
Test case catalog 1/test_ Test module 1.py::test_testFunc1 PASSED [ 50%]
Test case catalog 1/test_ Test module 2.py::TestClass1::test_class_func1 PASSED [100%]
========================== 2 passed in 0.05 seconds ===========================
# This will only search and specify all the uses under the specified directory
3.2 Run all use cases in the specified file
We specify the run test_ Test module 1.py(pytest -v Test case catalog 1/test_ Test module 1.py )
D:\pytest Search test case rules >pytest -v Test case catalog 1/test_ Test module 1.py
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest Search test case rules , inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 1 item
Test case catalog 1/test_ Test module 1.py::test_testFunc1 PASSED [100%]
========================== 1 passed in 0.09 seconds ===========================
# Run all use cases under the specified file
3.3 Run the test class in the specified file
We specify the run test_ Test module 2.py Test class in Testclass1(pytest -v Test case catalog 1/test_ Test module 2.py::TestClass1)
D:\pytest Search test case rules >pytest -v Test case catalog 1/test_ Test module 2.py::TestClass1
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest Search test case rules , inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 1 item
Test case catalog 1/test_ Test module 2.py::TestClass1::test_class_func1 PASSED [100%]
========================== 1 passed in 0.05 seconds ===========================
# Run all tests in the specified test class with
3.4 Run the specified test case function
We specify the run test_testFunc1(pytest -v Test case catalog 1/test_ Test module 1.py::test_testFunc1)
D:\pytest Search test case rules >pytest -v Test case catalog 1/test_ Test module 1.py::test_testFunc1
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Windows-10-10.0.17134-SP0', 'Packages': {'pytest': '3.8.0', 'py': '1.6.0', 'pluggy': '0.7.1'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-adaptor': '1.7.10'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_181'}
rootdir: D:\pytest Search test case rules , inifile:
plugins: metadata-1.8.0, html-1.20.0, allure-adaptor-1.7.10
collected 1 item
Test case catalog 1/test_ Test module 1.py::test_testFunc1 PASSED [100%]
========================== 1 passed in 0.03 seconds ===========================
summary
Collect use case rules : Search all to test_ The first test file , With Test The first test class , With test_ The first test function
Execute use case rules : from -v We should be able to find the execution information of the parameter output , Run the use cases in the specified directory Use command pytest Catalog / Catalog that will do ; Run the specified file using pytest Catalog / file that will do ; Run the specified class or function Use command pytest Catalog / file :: Class name :: Function name perhaps pytest Catalog / file :: Function name
Search case rules are also our named case files , Test class , Rules for testing functions ; Execute the specified test case to remember the rules .
Finally, that's all for today's article. My favorite friends can like comments, collect and pay attention , Your support is the motivation of the author .
边栏推荐
- Li Kou daily question 1 (2)
- LeetCode:39. 组合总和
- LeetCode:26. Remove duplicates from an ordered array
- [embedded] cortex m4f DSP Library
- Ijcai2022 collection of papers (continuously updated)
- Chapter 1 :Application of Artificial intelligence in Drug Design:Opportunity and Challenges
- I-BERT
- Pytest参数化你不知道的一些使用技巧 /你不知道的pytest
- KDD 2022论文合集(持续更新中)
- How to effectively conduct automated testing?
猜你喜欢
Compétences en mémoire des graphiques UML
[embedded] cortex m4f DSP Library
多元聚类分析
Digital people anchor 618 sign language with goods, convenient for 27.8 million people with hearing impairment
【嵌入式】使用JLINK RTT打印log
Intel Distiller工具包-量化实现3
不同的数据驱动代码执行相同的测试场景
[OC]-<UI入门>--常用控件-提示对话框 And 等待提示器(圈)
TP-LINK 企业路由器 PPTP 配置
[OC-Foundation框架]--<Copy对象复制>
随机推荐
MySQL uninstallation and installation methods
自动化测试框架有什么作用?上海专业第三方软件测试公司安利
To effectively improve the quality of software products, find a third-party software evaluation organization
LeetCode:221. Largest Square
Leetcode刷题题解2.1.1
LeetCode:236. The nearest common ancestor of binary tree
ESP8266-RTOS物联网开发
使用latex导出IEEE文献格式
LeetCode:124. 二叉树中的最大路径和
MongoDB 的安装和基本操作
Intel Distiller工具包-量化实现1
Intel distiller Toolkit - Quantitative implementation 1
Pytest参数化你不知道的一些使用技巧 /你不知道的pytest
Leetcode: Jianzhi offer 04 Search in two-dimensional array
【剑指offer】序列化二叉树
[OC-Foundation框架]---【集合数组】
Notes 01
LeetCode:236. 二叉树的最近公共祖先
IJCAI2022论文合集(持续更新中)
Super efficient! The secret of swagger Yapi