上面发你的代码是pytest
时间: 2024-10-02 16:04:02 浏览: 28
pytest-bdd 简单示例
5星 · 资源好评率100%
对不起,您提到的代码似乎是基于`unittest`模块编写,而您随后提到了`pytest`。`pytest`是一个流行的Python测试框架,它提供了一种更简洁、灵活的方式来组织和运行测试。如果您想用`pytest`重写上述代码,可以这样做:
首先,安装pytest(如果还没有安装):
```bash
pip install pytest
```
然后,使用`pytest`的`fixture`功能来管理测试之间的依赖,比如需要在多个测试之间共享数据。下面是`test01`和`test03`用`pytest`重构的例子:
```python
import pytest
from your_module import config, get_request # 假设get_request是一个辅助函数用于发起请求
@pytest.fixture
def course_id():
response = get_request(config.base_url, "api/clues/course", method="POST", data={"name": ..., ...}) # 添加实际的请求数据
return response.json()["data"]["id"]
def test01_add_course(course_id):
assert response.status_code == 200
assert response.json()["code"] == 200
assert response.json()["msg"] == "操作成功"
def test03_get_course_by_id(course_id):
response = get_request(config.base_url, f"api/clues/course/{course_id}", method="GET")
assert response.status_code == 200
assert response.json()["code"] == 200
assert response.json()["msg"] == "操作成功"
assert "成功" in response.text
```
在这个版本中,`course_id`被定义为一个fixture,会在所有依赖它的测试中自动执行一次。每次运行`test03_get_course_by_id`时,都会使用`test01_add_course`生成的`course_id`。
阅读全文