将所有测试分组为Python

时间:2015-12-14 02:18:57

标签: python python-3.x testing


我有2个模块:test1.py和test2.py。
test1.py

import unittest

class ArithTest (unittest.TestCase):

    def test_run (self):

        """ Test addition and succeed. """
        self.failUnless (1+1==2, 'one plus one fails!')
        self.failIf (1+1 != 2, 'one plus one fails again!')
        self.failUnlessEqual (1+1, 2, 'more trouble with one plus one!')

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

test2.py

import unittest

class AlgTest (unittest.TestCase):

    def test_alg (self):

        """ Test addition and succeed. """
        self.assertEqual(1+1, 2, '1+1 != 2? whaaat?')
        self.assertEqual(6-5, 1, '6-5 != 5 wft python?')

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

- 现在 - 我想创建一个新的模块test3.py来测试test1.py和test2.py。我现在不知道如何,我在互联网上阅读有关西装测试的内容,但我不明白。 我不想再通过调用测试创建一个方法,并在test3.py上调用它们。 我想将它们分组并在test3.py中调用它们作为unitests运行

1 个答案:

答案 0 :(得分:1)

test1.py

import unittest

class ArithTest (unittest.TestCase):

    def test_run (self):

        """ Test addition and succeed. """
        self.failUnless (1+1==2, 'one plus one fails!')
        self.failIf (1+1 != 2, 'one plus one fails again!')
        self.failUnlessEqual (1+1, 2, 'more trouble with one plus one!')

    def runTest(self):
        self.test_run()

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

test2.py

import unittest

class AlgTest (unittest.TestCase):

    def test_alg (self):

        """ Test addition and succeed. """
        self.assertEqual(1+1, 2, '1+1 != 2? whaaat?')
        self.assertEqual(6-5, 1, '6-5 != 5 wft python?')

    def runTest(self):
        self.test_alg()

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

test3.py

from .test1 import ArithTest
from .test2 import AlgTest
import unittest

def suite_2():
    suite = unittest.TestSuite()
    suite.addTest(ArithTest())
    suite.addTest(AlgTest())

    return suite

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    test_suite = suite_2()
    runner.run(test_suite)

同时添加__init__.py

使用python3 -m folder_name.test3

运行它