AttributeError: 'TestFiles' object has no attribute '_reports'

AttributeError: 'TestFiles' object has no attribute '_reports'

我有两个 class 一个在我的 test.py 另一个在我的 main.py 文件分别命名为 TestFilesFiles。我的 Files class 包含两个方法,一个是私有的 _reports ,它在另一个名为 get_file_data 的方法中被调用但是当我 运行 我的 pytest 它给出了这个错误

AttributeError: 'TestFiles' object has no attribute '_reports'

这是我的TestFilesclass

import Files

class TestFiles:
    def test_generate_output_files(self):
        Files.get_file_data(self)

这是我的Filesclass

class Files:

    def _reports(self):
        # does some work
        pass

    def get_file_data(self):
        reports = self._reports()

您不是在创建 class - 您只是在调用方法。在这种情况下,self 参数将是 class 对象,您将无法访问 class 实例上的私有方法。

相反,您必须创建对象并调用该对象的方法:

from Files import Files

class TestFiles:
    def test_generate_output_files(self):
        files_object = Files()
        files_object.get_file_data()