pythonunit-testingregression-testingtest-suitepython-unittest

Trying to implement python TestSuite


I have two test cases (two different files) that I want to run together in a Test Suite. I can get the tests to run just by running python "normally" but when I select to run a python-unit test it says 0 tests run. Right now I'm just trying to get at least one test to run 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"

Here's an example of my test case set up

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()

What do I have to do to get this work correctly?


Solution

  • you want to use a testsuit. So you need not call unittest.main(). Use of testsuit should be like this:

    #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)