pytest 学习资料和链接
时间: 2023-09-19 18:05:19 浏览: 200
下面是一些 pytest 学习资料和链接:
1. pytest 官方文档:https://docs.pytest.org/en/latest/
2. pytest 文章和教程:https://www.cnblogs.com/mengyu/p/11238957.html
3. pytest 入门教程:https://www.jianshu.com/p/ea0f9b70a4a5
4. pytest 从入门到实践:https://mp.weixin.qq.com/s/9q1lJc2ZJ6zBQOe9OjO2lw
5. pytest 实战教程:https://www.cnblogs.com/kaituorensheng/p/10188956.html
6. pytest 测试实战:https://www.jianshu.com/p/7a2d6e653a3a
7. pytest 实例讲解:https://www.cnblogs.com/yyds/p/10671935.html
8. pytest 测试框架教程:https://www.runoob.com/w3cnote/pytest-test-framework.html
希望这些资料和链接可以帮助你学习 pytest,祝你学习愉快!
相关问题
unittest和pytest代码学习实践
unittest和pytest都是Python中常用的单元测试框架,用于测试代码的正确性和可靠性。下面将分别介绍它们的代码学习实践。
一、unittest
1. 测试框架初始化
```
import unittest
class TestDemo(unittest.TestCase):
def setUp(self):
# 测试用例执行前的初始化操作
pass
def tearDown(self):
# 测试用例执行后的清理操作
pass
def test_demo(self):
# 测试用例
pass
if __name__ == '__main__':
unittest.main()
```
2. 测试用例编写
```
import unittest
class TestDemo(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 2, 3)
def test_subtract(self):
self.assertEqual(3 - 2, 1)
if __name__ == '__main__':
unittest.main()
```
3. 断言方法
unittest提供了多种断言方法,常用的有以下几种:
- assertEqual(a, b):判断a是否等于b
- assertNotEqual(a, b):判断a是否不等于b
- assertTrue(x):判断x是否为True
- assertFalse(x):判断x是否为False
- assertIn(a, b):判断a是否在b中
- assertNotIn(a, b):判断a是否不在b中
- assertIs(a, b):判断a是否是b
- assertIsNot(a, b):判断a是否不是b
4. 测试套件
测试套件是由多个测试用例组成的集合,可以通过TestSuite类来创建测试套件。
```
import unittest
class TestAdd(unittest.TestCase):
def test_add1(self):
self.assertEqual(1 + 2, 3)
def test_add2(self):
self.assertEqual(2 + 3, 5)
class TestSubtract(unittest.TestCase):
def test_subtract1(self):
self.assertEqual(3 - 2, 1)
def test_subtract2(self):
self.assertEqual(5 - 3, 2)
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(TestAdd())
suite.addTest(TestSubtract())
unittest.TextTestRunner().run(suite)
```
二、pytest
1. 基本用法
```
def test_add():
assert 1 + 2 == 3
def test_subtract():
assert 3 - 2 == 1
```
2. 参数化测试
```
import pytest
@pytest.mark.parametrize('a, b, expected', [
(1, 2, 3),
(2, 3, 5),
])
def test_add(a, b, expected):
assert a + b == expected
```
3. fixture
fixture是pytest中的一个重要概念,可以用来提供测试用例所需要的资源。比如,我们可以通过fixture来创建数据库连接、打开浏览器等。
```
import pytest
import requests
@pytest.fixture()
def url():
return 'http://www.example.com'
def test_request(url):
response = requests.get(url)
assert response.status_code == 200
```
4. mark
mark是pytest中的一个标记机制,可以用来标记某些测试用例,方便对其进行筛选和执行。
```
import pytest
@pytest.mark.smoke
def test_add():
assert 1 + 2 == 3
@pytest.mark.regression
def test_subtract():
assert 3 - 2 == 1
```
pytest支持自定义mark,比如我们可以通过以下方式自定义一个slow mark:
```
import pytest
def pytest_configure(config):
config.addinivalue_line(
"markers", "slow: mark test as slow"
)
@pytest.mark.slow
def test_add():
assert 1 + 2 == 3
```
pytest学习宝典
pytest学习宝典是一本关于使用pytest进行Python单元测试的学习资料。pytest是一个成熟的全功能Python测试工具,相比于Python自带的unittest测试框架,pytest更简洁、高效,并且兼容unittest框架。它是一个非常灵活、容易上手的单元测试框架。通过学习pytest,您可以掌握如何使用它来编写更好的程序和更有效的单元测试。