如何自动在测试(或方法)中使用pytest fixture?

时间:2018-01-31 07:23:12

标签: python pytest

鉴于我找到here的信息,我尝试了以下内容:

@pytest.mark.usefixtures("driver")
class TestSuite(object):
    def test1(self):
        driver.log("Start the test")

但是我收到了错误

NameError: global name 'driver' is not defined

所以信息不正确,还是我误解了?

如何在TestSuite类内的每个测试方法(或任何其他方法)中自动使用灯具?

更多信息:

  • 我需要为每次测试重新初始化灯具
  • 通常情况下,测试需要5个灯具。但是因为我正在为每个测试使用一些方法,所以我需要像这样传递它们

    def do_something(self, fixture1, fixture2, fixture3, fixture4, fixture5):
        ...
    
    def test1(self, fixture1, fixture2, fixture3, fixture4, fixture5):
         do_something(fixture1, fixture2, fixture3, fixture4, fixture5)
    

    也许它不会那么糟糕,但如果我可以每次测试自动使用灯具,那会有所帮助...

1 个答案:

答案 0 :(得分:2)

usefixtures表示将自动调用列出的灯具,而不是您的代码中可以使用它们来调用它们。

我怀疑有没有办法在没有明确命名的情况下使用灯具。

class TestSuite(object):
    def test1(self, driver):
        driver.log("Start the test")

是唯一的方法。