从unnitest获取课程的属性

发布于 2025-02-04 21:47:52 字数 2430 浏览 2 评论 0原文

我想从Unitest访问配置项目路径和名称的类的属性。

在此类中,我使用相应提到的属性的构造函数,getter和setter方法,以及接收要定义的项目名称的方法(如果未接收任何值,则默认为“ foo”)。

将项目的路径和名称配置的类:config.py

# -*- coding: utf-8 -*-
class Config:

    def __init__(self):
        self._basedir = "C:/Users/example"
        self._name_project = None

    def set_project(self, project_name=None):
        if project_name is None:
            self.set_name_project = "foo"
        else:
            self.set_name_project = project_name

    @property
    def get_basedir(self):
        return self._basedir

    @property
    def get_name_project(self):
        return self._name_project

    @get_name_project.setter
    def set_name_project(self, name_project):
        self._name_project = name_project

将上述类导入我的UNITSEST文件:test.py

# -*- coding: utf-8 -*-
import unittest
from Config import Config


class Test(Config, unittest.TestCase):
    def setUp(self):
        Config.set_project(self)

    def test_000_set_project(self):
        print(Config.get_basedir)
        print(Config.get_name_project)

    def tearDown(self):
        pass


if __name__ == '__main__':
    unittest.main()

我收到的错误如下:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.1\plugins\python-ce\helpers\pycharm\_jb_unittest_runner.py", line 35, in <module>
    sys.exit(main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING))
  File "C:\Python\lib\unittest\main.py", line 100, in __init__
    self.parseArgs(argv)
  File "C:\Python\lib\unittest\main.py", line 147, in parseArgs
    self.createTests()
  File "C:\Python\lib\unittest\main.py", line 158, in createTests
    self.test = self.testLoader.loadTestsFromNames(self.testNames,
  File "C:\Python\lib\unittest\loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Python\lib\unittest\loader.py", line 220, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Python\lib\unittest\loader.py", line 198, in loadTestsFromName
    inst = parent(name)
TypeError: Config.__init__() takes 1 positional argument but 2 were given

Process finished with exit code 1

Empty suite

我想打印以下内容:

"C:/Users/example"
foo

谢谢。问候。

I want to access from Unittest the attributes of a class that configures the path and name of a project.

In this class I use a constructor, getter and setter methods of the respective mentioned attributes and a method that receives the name of the project to be defined (if it does not receive any value, it defaults to 'foo').

Class that configures the path and name of the project: Config.py

# -*- coding: utf-8 -*-
class Config:

    def __init__(self):
        self._basedir = "C:/Users/example"
        self._name_project = None

    def set_project(self, project_name=None):
        if project_name is None:
            self.set_name_project = "foo"
        else:
            self.set_name_project = project_name

    @property
    def get_basedir(self):
        return self._basedir

    @property
    def get_name_project(self):
        return self._name_project

    @get_name_project.setter
    def set_name_project(self, name_project):
        self._name_project = name_project

Import the above class into my unittest file: Test.py

# -*- coding: utf-8 -*-
import unittest
from Config import Config


class Test(Config, unittest.TestCase):
    def setUp(self):
        Config.set_project(self)

    def test_000_set_project(self):
        print(Config.get_basedir)
        print(Config.get_name_project)

    def tearDown(self):
        pass


if __name__ == '__main__':
    unittest.main()

The error I get is the following:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.1\plugins\python-ce\helpers\pycharm\_jb_unittest_runner.py", line 35, in <module>
    sys.exit(main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING))
  File "C:\Python\lib\unittest\main.py", line 100, in __init__
    self.parseArgs(argv)
  File "C:\Python\lib\unittest\main.py", line 147, in parseArgs
    self.createTests()
  File "C:\Python\lib\unittest\main.py", line 158, in createTests
    self.test = self.testLoader.loadTestsFromNames(self.testNames,
  File "C:\Python\lib\unittest\loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Python\lib\unittest\loader.py", line 220, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Python\lib\unittest\loader.py", line 198, in loadTestsFromName
    inst = parent(name)
TypeError: Config.__init__() takes 1 positional argument but 2 were given

Process finished with exit code 1

Empty suite

I want to print the following:

"C:/Users/example"
foo

Thanks. Greetings.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文