试图实现的Python的TestSuite(Trying to implement python T

2019-06-27 03:04发布

我有,我想在一个测试套件一起运行两个测试用例(两个不同的文件)。 我能得到的测试只是通过运行蟒蛇“正常”,但是当我选择运行一个Python单元测试它说0运行测试运行。 现在我只是想获得至少一个测试correectly运行。

import usertest
import configtest # first test
import unittest   # second test

testSuite = unittest.TestSuite()
testResult = unittest.TestResult()
confTest = configtest.ConfigTestCase()
testSuite.addTest(configtest.suite())
test = testSuite.run(testResult)
print testResult.testsRun # prints 1 if run "normally"

这里的设置我的测试案例的一个例子

class ConfigTestCase(unittest.TestCase):
    def setUp(self):

        ##set up code

    def runTest(self):

        #runs test


def suite():
    """
        Gather all the tests from this module in a test suite.
    """
    test_suite = unittest.TestSuite()
    test_suite.addTest(unittest.makeSuite(ConfigTestCase))
    return test_suite

if __name__ == "__main__":
    #So you can run tests from this module individually.
    unittest.main()

我有什么做的正确得到这个工作?

Answer 1:

要使用testsuit。 所以,你不必叫unittest.main()。 testsuit使用应该是这样的:

#import usertest
#import configtest # first test
import unittest   # second test

class ConfigTestCase(unittest.TestCase):
    def setUp(self):
        print 'stp'
        ##set up code

    def runTest(self):
        #runs test
        print 'stp'

def suite():
    """
        Gather all the tests from this module in a test suite.
    """
    test_suite = unittest.TestSuite()
    test_suite.addTest(unittest.makeSuite(ConfigTestCase))
    return test_suite

mySuit=suite()

runner=unittest.TextTestRunner()
runner.run(mySuit)


Answer 2:

所有的代码来创建一个装载机和套房是不必要的。 让他们通过使用你喜欢的测试运行测试发现可运行的,你应该写你的测试。 这只是意味着命名标准方式你的方法,把它们放在一个导入的地方(或通过含有它们亚军的文件夹),并继承unittest.TestCase 。 你这样做之后,你可以使用python -m unittest discover在最简单的,或一个更好的第三方亚军发现,然后运行测试。



Answer 3:

我假设你指的是运行针对它整合了两个测试模块中的python-单元测试。 如果你创建测试用例该模块即会工作。 继承unittest.TestCase并具有简单的测试以单词“测试”开始。

class testall(unittest.TestCase):

    def test_all(self):           
        testSuite = unittest.TestSuite()
        testResult = unittest.TestResult()
        confTest = configtest.ConfigTestCase()
        testSuite.addTest(configtest.suite())
        test = testSuite.run(testResult)
        print testResult.testsRun # prints 1 if run "normally"

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


Answer 4:

如果你想手动收集TestCase S,这是非常有用的: unittest.loader.findTestCases()

# Given a module, M, with tests:
mySuite = unittest.loader.findTestCases(M)
runner = unittest.TextTestRunner()
runner.run(mySuit)


文章来源: Trying to implement python TestSuite