现在我有这样的代码:
from rest_framework.test import APITestCase
class MyTestClass(ApiTestCase):
fixtures = ['some_fixtures.json', ]
@pytest.mark.parametrize('field, reverse_ordering', [
('id', False),
('id', True)])
def test_ordering(self, field, reverse_ordering):
# some test function
每次都因该错误而失败:
======================================================================
ERROR: test_ordering (my_module.tests.MyTestClass)
----------------------------------------------------------------------
TypeError: test_ordering() missing 2 required positional arguments: 'field' and 'reverse_ordering'
如何在DRF测试类的@pytest.mark.parametrize
内部测试中使用APITestCase
装饰器?
也许还有另一种参数化测试的方法(但不是循环)?
答案 0 :(得分:3)
ApiTestCase
是unittest.TestCase
的子类,它不支持pytest docs中提到的参数化:
以下pytest功能可在unittest.TestCase子类中使用:
- 标记:skip,skipif,xfail;
- 自动使用的灯具;
以下pytest 功能不起作用,可能由于不同的设计而永远不会起作用 哲学:
- 固定装置(自动使用的固定装置除外,请参见下文);
- 参数化;
- 自定义钩子;
第三方插件可能无法正常运行,具体取决于 在插件和测试套件上。