1、使用print()打印

测试代码最简单的就是添加一些print()语句。然而产品开发中,需要记住自己添加的所有print()语句并在最后删除,很容易出现失误。

2、使用pylint、pyflakes和pep8检查代码

这些包可以检查代码错误和代码风格问题。

  • pip install pylint
  • pip install pyflakes
style1.py:
a=1
b=2
print(a)
prnt(b)
print(c)
------------------------------
$ pylint style1.py

输出E带头为Error。

  • pip install pep8
$ pep8 style1.py

3、使用unittest测试

用于测试代码程序逻辑。

  • 确定输入对应的期望输出(断言)
  • 传入需要测试的函数,检查返回值和期望输出是否相同,可以使用assert检查。
test_cap.py:
---------------------------
import unittest
from string import capwords
def just_do_it(text):
return text.capitalize()#换成text.title()、capwords(text)
class TestCap(unittest.TestCase):
def setUp(self): #在每个测试方法前执行
pass
def tearDown(self):#在每个测试方法执行后执行
pass
def test_one_word(self):
text='duck'
result=just_do_it(text)
self.assertEqual(result,'Duck')
def test_multiple_words(self):
text='a veritable flock of ducks'
self.assertEqual(result,'A veritable Flock Of Ducks')
def test_words_with_apostrophes(self):
text="I'm fresh out of ideas"
result=just_do_it(text)
self.assertEquals(result,"I'm Fresh Out Of Ideas")
def test_words_with_quotes(self):
text="\"You're despicable,\" said Daffy Duck"
result=just_do_it(text)
self.assertEqual(result,"\"You're Despicable,\" Said Daffy Duck")
if __name__=='__main__':
unittest.main()

4、使用doctest测试

可以把测试写到文档字符串中,也可以起到文档作用。

cap.py:
-------------------------------
def just_do_it(text):
"""
>>>just_do_it('duck')
'Duck'
>>>just_do_it('a veritable flock of ducks')
'A Veritable Flock Of Ducks'
>>>just_do_it("I'm fresh out of ideas")
"I'm Fresh Out Of Ideas"
"""
from string import capwords
return capwords(text) if __name__=='__main__':
import doctest
doctest.testmod()
----------------------------------------------
$ python cap.py -v

5、使用nose测试

和unittest类似,但不需要创建一个包含测试方法的类,任何名称中带有test的函数都会被执行。

test_cap.py:
---------------------------
from nose.tools import eq_
from string import capwords
def just_do_it(text):
return text.capitalize()#换成text.title()、capwords(text)
def test_one_word(self):
text='duck'
result=just_do_it(text)
eq_(result,'Duck')
def test_multiple_words(self):
text='a veritable flock of ducks'
eq_(result,'A veritable Flock Of Ducks')
def test_words_with_apostrophes(self):
text="I'm fresh out of ideas"
result=just_do_it(text)
eq_(result,"I'm Fresh Out Of Ideas")
def test_words_with_quotes(self):
text="\"You're despicable,\" said Daffy Duck"
result=just_do_it(text)
eq_(result,"\"You're Despicable,\" Said Daffy Duck")
----------------------------------------------------
$ nosetests test_op.py

6、其他测试框架

  • tox
  • py.test

python 测试代码的更多相关文章

  1. python测试代码

    前言: 编写函数或者类时,需要编写测试代码,来保证其的功能运行是否按预期的那样工作.在程序添加新的代码时,用来测试是否会破坏本身的功能. 我们使用python自带的unittest模块来测试代码. 编 ...

  2. Python 测试代码 初学者笔记

    单元测试 每完成一个单元测试,Python都会打印一个字符: 测试通过打印一个句点:测试引发错误打印E:测试导致断言失败打印F 模块unittest import unittest from name ...

  3. python自动化测试开发利器ulipad最佳实践(可写python测试代码也可编写selenium、Appium等)...

    介绍 UliPad是一个国人开发的python轻量级编辑器,导向和灵活的编程器.它如类浏览器,代码自动完成许多功能,如:HTML查看器,目录浏览器,向导等. 下载与安装 下载地址:https://py ...

  4. GPS坐标(WGS84)转换百度坐标(BD09) python测试

    基础知识坐标系说明: WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系. GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统.由WGS84坐标系经加密后的坐标 ...

  5. Python之unittest测试代码

    前言 编写函数或者类时,还可以为其编写测试.通过测试,可确定代码面对各种输入都能够按要求的那样工作. 本次我将介绍如何使用Python模块unittest中的工具来测试代码. 测试函数 首先我们先编写 ...

  6. 25 【python入门指南】如何编写测试代码

    python如何编写测试代码 python内置了unittest,使得写应用层的单元测试变得超乎寻常的简单. 1,执行单个测试函数 #!/bin/python import unittest clas ...

  7. 基于 webdriver 的测试代码日常调试方python 篇

    看到论坛有人写了JAVA的测试代码日常设计,就给大家分享一下偶自己平时是如何测试测试代码的.主要基于python语言.基于 webdriver 的日常调试在 python交互模式下非常方便,打开pyt ...

  8. selenium+python测试

    pip install selenium, 得有图形界面, 这里简单的先演示一个打开浏览器,输入网址的demo,以百度为例 # encoding = utf-8 from selenium impor ...

  9. 关于python测试webservice接口的视频分享

    现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用pytho ...

随机推荐

  1. 使用code::blocks搭建objective-c的IDE开发环境 支持 @interface

    网上有许多的关于 <使用code::blocks搭建objective-c的IDE开发环境>的文章. 大多是写了一个Helloworld 就结束了,今天试了试 添加了一个 @interfa ...

  2. Flex上传文件Java端解决中文乱码问题

    1.Flex端进行编码 public function encodeStr(str:String, charSet:String):String { var result:String =" ...

  3. Intellij IDEA和EclipsE之间的的全面对比

    两个IDE之中我最常用的快捷键: 描述 Eclipse IntelliJ 代码补全 Ctrl+space ctrl+space 打开类或者接口 (两个IDE都支持使用"驼峰字符"前 ...

  4. 用Vue.js开发一个电影App的前端界面

    我们要构建一个什么样的App? 我们大多数人使用在线流媒体服务(如Netflix)观看我们最喜欢的电影或者节目.这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WEB交互界 ...

  5. JQ Ajax 上传文件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. php 相同的产品 一个背景色

    Array ( [0] => 12 [1] => 17 [2] => 17 [3] => 17 [4] => 17 [5] => 3 [6] => 3 [7] ...

  7. [LAMP]安装-Debian

    sudo apt-get install build-essential sudo apt-get install mysql-server sudo apt-get install apache2 ...

  8. js 跳转的几种方法收藏

    history.go(-n) 返回上一页(n 为返回前几页) window.location.reload(); 刷新当前页面 history.go(-1);window.locatoin.reloa ...

  9. AOSP5.0换8G eMMC不能开机问题

    AOSP5.0 MT6572平台.用H9TP32A4GDBCPR_KGM这颗4G的eMMC就能够.可是用H9TP65A8JDACPR_KGM这个8G的就开不了机,一直是重新启动.用串口抓LOG发现以下 ...

  10. 66、多种多样的App主界面Tab(1)------ ViewPager实现Tab

    <?xml version="1.0" encoding="utf-8"?> <!-- bottom.xml --> <Linea ...