我同时使用了python unittest和pytest框架,我遇到了一个例子,我有一个fixture生成签名的头标记,我试图在本地模拟它,所以我想创建一个fixture,当测试运行时,我可以传递一个有效负载到它,但是,看起来我不能同时使用pytest和unittest。
pytest.fixture
def gen_headers(value):
return "hey bud, you got a nice header!" + value["fake_head"]
class Tests(unittest.TestCase):
@pytest.mark.parametrize("gen_headers", [{"fake_head": "hi :)"}], indirect=True)
def test_func(self, gen_headers):
do_ya_thing = api.request("get", headers=gen_headers)
...
测试失败TypeError: ... missing 1 required positional argument: ...
我尝试过使用参数化的python包,但是我认为它不支持在运行时(测试时)向fixture传递自定义输入,而这正是我希望做的,因为在gen_headers
中返回的内容可能会改变。
1条答案
按热度按时间aelbi1ox1#
你不能轻易地将参数化的fixture和unittest结合起来,有什么理由不直接使用pytest呢?
单独使用pytest,您可以使用request fixture轻松地访问参数。