我已经在一个文件中编写了我的测试类,并且我试图使用最热固定装置,这样我就不必在每个测试函数中创建相同的输入数据。下面是最小的工作示例。
import unittest
import pytest
@pytest.fixture
def base_value():
return 5
class Test(unittest.TestCase):
def test_add_two(self, base_value):
result = base_value + 2
self.assertEqual(result, 7, "Result doesn't match")但是,当我使用pytest-3测试时,我会得到以下错误:
TypeError: test_add_two()缺少一个必需的位置参数:'base_value‘
这让我感到困惑,因为base_value显然是作为test_add_two的一个参数给出的。任何帮助都是非常感谢的。
发布于 2021-07-19 11:41:54
这是因为您将pytest和unittest混合在一起。试一试
@pytest.fixture
def base_value():
return 5
class Test:
def test_add_two(self, base_value):
result = base_value + 2
assert result == 7, "Result doesn't match"如果失败的话,错误将是
def test_add_two(self, base_value):
result = base_value + 2
> assert result == 8, "Result doesn't match"
E AssertionError: Result doesn't match
E assert 7 == 8但是pytest和unittest不兼容吗?
只是在有限的基础上。来自Pytest unittest.TestCase支持
unittest.TestCase子类中的pytest特性以下pytest特性在unittest.TestCase子类中工作:
下面的pytest特性不起作用,而且可能永远不会因为不同的设计理念而起作用:
第三方插件可能运行良好,也可能不正常,这取决于插件和测试套件。
https://stackoverflow.com/questions/68439799
复制相似问题