【问题标题】:pytest says fixture not found when I'm not using onepytest 说我不使用夹具时找不到夹具
【发布时间】:2016-07-27 11:22:58
【问题描述】:

我正在尝试参数化测试场景,这样我就不必像 xUnit 样式测试那样为每个场景制作单独的案例。

这是一个来自 pytest 的示例,我正在尝试为我自己的用例复制它。

    from datetime import datetime, timedelta

testdata = [
    (datetime(2001, 12, 12), datetime(2001, 12, 11), timedelta(1)),
    (datetime(2001, 12, 11), datetime(2001, 12, 12), timedelta(-1)),
]


@pytest.mark.parametrize("a,b,expected", testdata)
def test_timedistance_v0(a, b, expected):
    diff = a - b
    assert diff == expected

上面的工作很好,但是当我尝试修改它以供我使用时,如下所示。我收到一条错误消息,提示找不到“转储”固定装置。我不明白发生了什么。这是我第一次使用 pytest,所以也许我没有得到任何东西。

dump1 = load_dump(pathtodump1,pathtodump2) # load_dump can take multiple params
dump2 = load_dump(pathtodump3)

scenarios = [(dump1,{'prod_str':None}),
             (dump2,{'prod_str':"123"})]

@pytest.mark.paramaterize("dump,expected_meta", scenarios)
def test_metadump_profiles(dump, expected_meta):
        meta = dump.meta
        assert meta.prod_str == expected_meta['prod_str']

这是我从 pytest 得到的错误。我还应该提到,当我调试测试从未运行时,它在参数化装饰器的某个地方失败了。

========================================================================= ERRORS ==========================================================================
________________________________________________________ ERROR at setup of test_metadump_profiles _________________________________________________________
file /x/x/x-x/x/x/x/x/x/x/test_x.py, line 81
  @pytest.mark.paramaterize("dump,expect_meta", scenarios)
  def test_metadump_profiles(dump, expect_meta):
        fixture 'dump' not found
        available fixtures: capfd, capsys, recwarn, tmpdir_factory, tmpdir, monkeypatch, pytestconfig, record_xml_property, cache
        use 'py.test --fixtures [testpath]' for help on them.


.

【问题讨论】:

    标签: python unit-testing pytest


    【解决方案1】:
    @pytest.mark.paramaterize
    

    这是无效的,pytest 会抛出一个没有意义的模棱两可的错误。这是由拼写错误引起的...

    @pytest.mark.parametrize
    

    是有效的拼写。我把头发拉出来的最愚蠢的虫子。 见github issue on this topic for more info.

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 1970-01-01
      • 2019-07-17
      • 2020-12-17
      • 1970-01-01
      • 2022-01-21
      • 2021-08-30
      • 1970-01-01
      • 2023-01-25
      相关资源
      最近更新 更多