python:测试单元测试中的特定功能?

时间:2017-08-28 18:36:18

标签: python unit-testing

我已经知道如何在python的unittest框架中测试特定的类。但是,我在测试特定功能时遇到问题。这是我用来选择我想要测试的类:

if __name__ == '__main__':
    test_classes_to_run = [Class1, Class2, Class3]

    loader = unittest.TestLoader()

    suites_list = []
    for test_class in test_classes_to_run:
        suite = loader.loadTestsFromTestCase(test_class)
        suites_list.append(suite)

    big_suite = unittest.TestSuite(suites_list)

    runner = unittest.TextTestRunner()
    results = runner.run(big_suite)

所以我尝试选择一个特定的功能:

if __name__ == '__main__':
    testing_class = Class1
    test_classes_to_run = [Class1.function1]

    loader = unittest.TestLoader()

    suites_list = []
    for test_class in test_classes_to_run:
        suite = loader.loadTestsFromTestCase(test_class)
        suites_list.append(suite)

    big_suite = unittest.TestSuite(suites_list)

    runner = unittest.TextTestRunner()
    results = runner.run(big_suite)

但是我收到以下错误:

  

TypeError:issubclass()arg 1必须是类

1 个答案:

答案 0 :(得分:0)

只需使用

unittest.TestLoader.loadTestsFromName('Path.to.Class1.test_function1')

来自documentation of the unittest module

  

例如,如果您的模块SampleTests包含一个   TestCase派生的类SampleTestCase,具有三种测试方法   (test_one(),test_two()和test_three()),说明符   'SampleTests.SampleTestCase'将导致此方法返回套件   它将运行所有三种测试方法。使用说明符   'SampleTests.SampleTestCase.test_two'将导致它返回测试   套件,它将仅运行test_two()测试方法。说明符   可以引用尚未导入的模块和包;他们   将作为副作用导入。