pytest main执行指定用例
时间: 2023-09-13 22:08:29 浏览: 146
执行指定的测试用例可以使用 pytest 的 `-k` 参数,该参数后面跟一个表达式,表示要执行的测试用例名称匹配该表达式的部分。例如,假设你有三个测试用例:test_addition、test_subtraction 和 test_multiplication,你可以通过以下命令只执行 test_addition 和 test_subtraction 两个测试用例:
```
pytest -k "addition or subtraction"
```
在上面的命令中,`-k` 参数后面的表达式为 `"addition or subtraction"`,其中 `or` 表示逻辑或操作。这个表达式会匹配测试用例名称中包含 "addition" 或 "subtraction" 的部分,从而只执行这两个测试用例。
除了使用 `-k` 参数,你也可以通过指定测试文件和测试函数来执行指定的测试用例。例如:
```
pytest test_calculation.py::test_addition
```
这个命令将只执行 `test_calculation.py` 文件中的 `test_addition` 测试函数。
相关问题
写一个pytest执行的测试用例+在run.py中调用的方法
在Python中,Pytest是一个流行的测试框架,我们可以编写一个简单的测试用例并将其放在一个文件中,然后在`run.py`或其他合适的主入口文件中调用它。这里是一个基本的例子:
首先,在`test_case/test_py_1.py`文件中创建一个测试用例,假设我们有一个名为`addition`的方法在`math_module.py`里:
```python
# test_case/test_py_1.py
import math_module # 假设存在这样的模块,包含一个addition函数
def test_addition():
assert math_module.addition(1, 2) == 3, "Addition of 1 and 2 should be 3"
assert math_module.addition(0, 0) == 0, "Zero addition should return zero"
```
在这个例子中,我们定义了一个测试函数`test_addition`,它通过`assert`断言`addition`函数的行为符合预期。
接着,在`run.py`或项目的主要入口文件中,你可以导入并运行测试模块:
```python
# run.py 或 main.py
import pytest
import os
# 如果项目位于其他地方,可以加上os.getcwd() 获取当前工作目录
if __name__ == "__main__":
current_dir = os.path.dirname(__file__)
test_dir = os.path.join(current_dir, "test_case")
pytest.main([test_dir])
```
上述代码中,我们导入了pytest库,然后获取了测试文件夹的路径,最后调用`pytest.main()`来执行所有的测试。
注意,你需要确保`math_module`已经定义了`addition`函数,或者修改测试用例使其指向实际存在的函数。
给我写一个基于pyhon + request + pytest 的一个用例模板
当然可以,以下是一个基于Python + Requests + Pytest 的用例模板:
```python
import pytest
import requests
# 测试用例
def test_case_name():
# 发送请求
url = "http://www.example.com/api"
headers = {"Content-Type": "application/json"}
data = {"key": "value"}
response = requests.post(url, headers=headers, json=data)
# 断言结果
assert response.status_code == 200
assert response.json()["code"] == 0
assert response.json()["message"] == "success"
assert response.json()["data"]["result"] == "expected_result"
# 测试用例
def test_case_name():
# 发送请求
url = "http://www.example.com/api"
headers = {"Content-Type": "application/json"}
data = {"key": "value"}
response = requests.post(url, headers=headers, json=data)
# 断言结果
assert response.status_code == 200
assert response.json()["code"] == 0
assert response.json()["message"] == "success"
assert response.json()["data"]["result"] == "expected_result"
if __name__ == "__main__":
pytest.main(["-s", "-v"])
```
在这个模板中,我们使用 requests 发送 HTTP 请求,并使用 Pytest 进行断言。运行所有测试用例的方式是执行 pytest.main(),其中,-s 表示显示所有的 print() 语句,-v 表示显示测试用例的详细信息。在实际的测试中,我们需要根据实际情况进行适当修改。
阅读全文