在pytest中报 cannot collect test class 'TestPush' because it has a __init__ 怎么解决
时间: 2023-06-24 19:04:33 浏览: 317
Test_frem.rar_V2
这个错误通常是由于 pytest 尝试收集测试类时遇到了带有 `__init__` 方法的类,而 pytest 不支持 `__init__` 方法作为测试类的方法。
有两种解决方案:
1. 将测试类中的 `__init__` 方法删除,或者将其中的代码移动到 `setup_method` 方法中。`setup_method` 方法是 pytest 支持的用于每个测试方法执行前的初始化操作的方法。
示例代码:
```python
class TestPush:
def setup_method(self):
# 初始化操作
pass
def test_push(self):
# 测试代码
pass
```
2. 将测试类的名称改为不包含 `Test` 的名称。pytest 默认会收集以 `Test` 开头的测试类,所以将名称改为其他名称可以避免 pytest 收集这个类。
示例代码:
```python
class Push:
def __init__(self):
# 初始化操作
pass
def test_push(self):
# 测试代码
pass
```
希望这可以帮助你解决问题。
阅读全文