我们都知道python有一个单元测试框架pyunit,也叫unittest,类似于java的junit。功能也比较丰富,他也有初始函数setUp(self), 清理函数tearDown(self),它有两只执行方式:
一、使用时首先我们的测试类要继承于unittest.TestCase. 然后把我们的测试都放到unittest.TestSuite()容器中,最后使用 unittest.TextTestRunner().run(suite)方法自动测试
二、编写的测试用例类继承unittest.TestCase类,所有测试函数以test开头,执行时,执行unittest.main(),所有测试类中以test开头的函数自动执行
下面是我的一个实验代码,在加上了断言后遇到一些坑,或者说是因为自己对unitest不熟悉而带来的误解吧。
testsuite.addTest(testClass("testsearch2")),有这一行可知我只加入了testsearch2用例到testsuite,那么按道理来讲,不论运行结果是pass还是fail还是异常,setup和teardown都应该只被执行一次。
但实际情况是,在运行完后看report时,report的结果会带来一些误解:
1、如果pass,report结果显示很准确