Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向TestSuite添加简单的测试方法_Python_Unit Testing_Test Suite - Fatal编程技术网

Python 向TestSuite添加简单的测试方法

Python 向TestSuite添加简单的测试方法,python,unit-testing,test-suite,Python,Unit Testing,Test Suite,如何将简单测试方法从unittest.TestCase添加到TestSuite。正如我所看到的,只可能将整个类添加到套件中,例如,我想要这样的东西: import unittest class MyBaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.abs = "test" class MyTestClass(MyBaseTestCase): def test

如何将简单测试方法从
unittest.TestCase
添加到
TestSuite
。正如我所看到的,只可能将整个类添加到套件中,例如,我想要这样的东西:

import unittest


class MyBaseTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.abs = "test"


class MyTestClass(MyBaseTestCase):
    def test_abs(self):
        if self.abs:
            pass


class MyTestSuite(unittest.TestSuite):
    def __init__(self):
        super().__init__()
        self.addTest(MyTestClass.test_abs)

这里我得到一个错误:
AttributeError:'TeamcityTestResult'对象没有属性“abs”
。它似乎是作为测试运行的,但是
setUpClass
不会调用。

您是如何运行测试套件的?我使用了您的代码并使用“python3-m unittest.py”运行它:

import unittest


class MyBaseTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.abs = "test"


class MyTestClass(MyBaseTestCase):
    def test_abs(self):
        if self.abs:
            pass


class MyTestSuite(unittest.TestSuite):
    def __init__(self):
        super().__init__()
        self.addTest(MyTestClass.test_abs)

它可以工作。

你能发布你的MyTestClass代码吗?是的,添加了完整的示例谢谢你的观点。我用IntelljIdea来运行它。然后将其配置为作为模块运行,并在那里选择test.MyTestSuite,这会生成如下命令:
python.exe C:\Users\Me\.IntelliJIdea2018.3\config\plugins\python\helpers\pycharm\\u jb\u unittest\u runner.py--target test.MyTestSuite
,使用
python-m unittest test test.MyTestSuite
调用python。如果我使用命令
python-m unittest test.py
选择带有testSuite的整个文件,它将开始工作。