写一段pytest的测试代码
时间: 2023-09-03 22:05:01 浏览: 111
### 回答1:
好的,以下是一个简单的 pytest 测试代码示例:
```python
def add(a, b):
return a + b
def test_add():
assert add(2, 3) == 5
assert add(0, 0) == 0
assert add(-1, 1) == 0
```
上述代码定义了一个 `add` 函数,然后编写了一个测试函数 `test_add` 来测试这个函数的功能。在 `test_add` 函数中,使用了三个 `assert` 语句来验证函数的三个不同输入输出是否与预期一致。
在执行 pytest 时,它会自动找到所有以 `test_` 开头的测试函数并执行它们。如果所有测试都通过了,那么 pytest 将显示一个绿色的 “PASSED” 标志,否则将显示一个红色的 “FAILED” 标志,并显示失败的详细信息。
当然,上述代码只是一个简单的示例,实际上 pytest 还提供了许多其他的功能和工具来帮助您编写更复杂和全面的测试。
### 回答2:
下面是一个简单的例子,演示了如何使用pytest编写测试代码:
```python
# test_calc.py
import pytest
from calculator import add, subtract, multiply, divide
def test_add():
assert add(2, 3) == 5
assert add(-1, 5) == 4
def test_subtract():
assert subtract(5, 2) == 3
assert subtract(10, 7) == 3
def test_multiply():
assert multiply(2, 3) == 6
assert multiply(-3, 4) == -12
def test_divide():
assert divide(6, 2) == 3
assert divide(10, 0) == "Error: Division by zero"
```
在这个例子中,我们假设有一个名为calculator.py的模块,里面定义了四个简单的数学函数:add,subtract,multiply和divide。我们使用pytest来编写对这些函数的测试代码。
对于每个函数,我们定义了一个测试函数,函数名以"test_"开头。在每个测试函数中,我们使用assert语句来断言函数的结果是否符合预期的结果。如果断言失败,pytest会生成一个错误消息,并将测试标记为失败。
在测试函数中,我们可以使用多个assert语句对函数的不同输入进行测试。如果其中一个断言失败,pytest会生成一个错误消息,并继续运行其他断言语句。当所有的断言语句都通过时,测试函数被视为通过。
可以使用以下命令运行tests的例子:
```
$ pytest test_calc.py
```
运行此命令后,pytest会自动查找在文件中以"test_"开头的函数,并运行它们。通过观察测试的输出,我们可以知道哪些测试通过,哪些失败。
### 回答3:
下面是一个使用Pytest库进行单元测试的例子:
```python
# 导入 Pytest
import pytest
# 定义一个待测试的函数
def add_numbers(x, y):
return x + y
# 使用装饰器 @pytest.mark.parametrize 来定义多组测试参数
@pytest.mark.parametrize("x, y, expected", [
(5, 10, 15), # 测试参数1
(0, 0, 0), # 测试参数2
(-5, 5, 0), # 测试参数3
])
# 定义测试函数
def test_add_numbers(x, y, expected):
# 调用待测试的函数
result = add_numbers(x, y)
# 使用 Pytest 提供的 assert 断言来判断测试结果是否等于预期结果
assert result == expected
# 运行测试函数
if __name__ == "__main__":
pytest.main(['-v'])
```
这段代码中,我们首先导入Pytest库,然后定义了一个名为`add_numbers`的待测试函数。接着,使用装饰器`@pytest.mark.parametrize`定义了多组测试参数,即同一个功能接口的不同输入情况。最后,我们定义了一个名为`test_add_numbers`的测试函数,其中我们调用了待测试的函数,并使用Pytest提供的assert断言判断测试结果是否等于预期结果。最后,通过运行`pytest.main(['-v'])`来执行测试。运行后,我们可以看到每个测试参数的执行结果以及测试结果。
阅读全文