Test suite的用途是将测试收集想要进行测试的测试用例,以便unittest执行这些选中的测试用例。 unittest.main()通常情况下main函数其实是一个默认的test suite,它默认会收集所有模块的测试用
Test suite的用途是将测试收集想要进行测试的测试用例,以便unittest执行这些选中的测试用例。
unittest.main()通常情况下main函数其实是一个默认的test suite,它默认会收集所有模块的测试用例,然后执行它们。以如下测试用例为例,在执行单元测试时,由于已经在代码下方设置了main函数,那么运行命令可以简化为"python test_apple.py"。
import unittestfrom apple import Apple
class AppleTestCases(unittest.TestCase):
def setUp(self):
self.apple = Apple()
#raise Exception("This is an exception!!!")
def test_default_apple_quantity(self):
self.assertEqual(self.apple.quantity(),200,'default quantity is wrong.')
def test_re_fill_quantity(self):
self.apple.re_fill(500)
self.assertEqual(self.apple.quantity(),500,'wrong quantity after re-fill.')
def tearDown(self):
print("The testing is done.")
if __name__ == '__main__':
unittest.main()
定制化测试集合在实际项目中,可能需要定制化测试集合的情况比较多,因为正常项目中一个模块(功能模块)的测试用例可能有很多,而有时只需要执行部分即可。
首先可以先定义一个test suite函数,具体如下所示:
def suite1():suite = unittest.TestSuite()
suite.addTest(AppleTestCases('test_default_apple_quantity'))
return suite
其次在执行这些测试用例时,也需要添加类似如下代码,去调用TestSuite实例。
if __name__ == '__main__':runner = unittest.TextTestRunner()
runner.run(suite1())
执行结果如下,实现了定制化Test Suite的目的。
如果大家想掌握第一手的资讯更新,请关注公众号“测试DAO”。