前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-测试-unittest-03-测试执行顺序

Python-测试-unittest-03-测试执行顺序

作者头像
zishendianxia
发布2019-12-30 10:06:32
5830
发布2019-12-30 10:06:32
举报
文章被收录于专栏:Python工程师Python工程师

系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2

  • 这个系列讲讲Python的测试版块,江湖有说,没有经过测试的代码就直接投入生产环境使用,是不地道的,基于此,还是学习测试吧
  • 今天继续讲讲单元测试,测试函数的运行顺序

Part 1:测试函数的运行顺序

  1. 从上2篇文章中,不知大家有没有关注一个问题,多个测试函数,哪一个先运行?
  2. 测试用例的执行顺序是和测试函数的名字相关的,如下图所示。只修改测试函数的名称,测试运行顺序也会变化

测试执行顺序

test_c_to_list / test_d_islower

test_e_to_list / test_d_islower

Part 2:指定运行顺序

  1. 当然我们可以通过函数名来控制运行顺序,但是未免太过于麻烦,而且不易扩展
  2. 我们希望可以指定运行顺序,TestSuite了解一下

测试代码

代码语言:javascript
复制
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篇传统执行方法

代码语言:javascript
复制
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:部分代码解读

  1. tests = [TestClass("test_e_to_list"), TestClass("test_d_islower"), TestClass("test_f")]决定了代码的执行顺序
  2. 默认执行顺序是按照测试函数的名称来依次执行

本文为原创作品,欢迎分享朋友圈

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档