pytest tmpdir是否仅与函数参数关联?

时间:2018-09-20 21:26:35

标签: python pytest

有没有一种方法可以使用pytest夹具tmrdir编写类的测试方法?在文档中,它指定可以与功能一起使用。 https://docs.pytest.org/en/latest/tmpdir.html

如果有一种方法可以将tmpdir参数传递给类中的测试方法,请您分享一个例子吗?

我尝试了以下操作,但是出现了以下错误: “

  

test_method()恰好接受2个参数(给定1个)”

我的代码:

import pytest

class class_test(TestCase):

    def test_method(self,tmpdir):
        # code

请帮助。

1 个答案:

答案 0 :(得分:1)

如文档here中所述,您必须在 initdir 函数上添加 tmpdir 参数。 这样, initdir 固定功能将用于该类的所有方法

示例:

import unittest
import pytest

   class Test_Temp(unittest.TestCase):
      @pytest.fixture(autouse=True)
      def initdir(self, tmpdir):
          tmpdir.chdir()  # change to pytest-provided temporary directory
          tmpdir.join("samplefile.ini").write("# testdata")

      def test_file content(self):
          with open('samplefile.ini', 'r') as f:
             assert f.read() == '# testdata'   //True