系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
- 这个系列讲讲Python的测试版块,江湖有说,没有经过测试的代码就直接投入生产环境使用,是不地道的,基于此,还是学习测试吧
- 今天继续讲讲单元测试,测试函数的运行顺序
Part 1:测试函数的运行顺序
- 从上2篇文章中,不知大家有没有关注一个问题,多个测试函数,哪一个先运行?
- 测试用例的执行顺序是和测试函数的名字相关的,如下图所示。只修改测试函数的名称,测试运行顺序也会变化
测试执行顺序
Part 2:指定运行顺序
- 当然我们可以通过函数名来控制运行顺序,但是未免太过于麻烦,而且不易扩展
- 我们希望可以指定运行顺序,TestSuite了解一下
测试代码
import unittest
from python_test_example.be_tested_02 import *
class TestClass(unittest.TestCase):
def test_e_to_list(self):
list_ = str_to_list("0-2-8-9-6-3")
self.assertIn(6, list_)
self.assertNotIn("6", list_)
def test_f(self):
self.assertEqual("1", True)
def test_d_islower(self):
self.assertTrue("CASE".islower())
self.assertFalse("CASE".islower())
if __name__ == '__main__':
suite = unittest.TestSuite()
tests = [TestClass("test_e_to_list"), TestClass("test_d_islower"), TestClass("test_f")]
suite.addTests(tests)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
测试结果
采用上1篇传统执行方法
import unittest
from python_test_example.be_tested_02 import *
class TestClass(unittest.TestCase):
def test_e_to_list(self):
list_ = str_to_list("0-2-8-9-6-3")
self.assertIn(6, list_)
self.assertNotIn("6", list_)
def test_f(self):
self.assertEqual("1", True)
def test_d_islower(self):
self.assertTrue("CASE".islower())
self.assertFalse("CASE".islower())
if __name__ == '__main__':
unittest.main(verbosity=2)
执行结果
Part 3:部分代码解读
-
tests = [TestClass("test_e_to_list"), TestClass("test_d_islower"), TestClass("test_f")]
决定了代码的执行顺序 - 默认执行顺序是按照测试函数的名称来依次执行
本文为原创作品,欢迎分享朋友圈
长按图片识别二维码,关注本公众号
Python 优雅 帅气
12x0.8.jpg
网友评论