Python中的unittest和logging

今天使用Python的unittest模块写了些单元测试,现记录下要点:

使用unittest的基本格式如下:

import unittest

class Test(unittest.TestCase):
    def setUp(self):
        pass

    def test_a(self):
        pass

    def test_b(self):
        pass

    def tearDown(self):
        pass

if __name__ == ‘__main__‘:
    unittest.main()

基本上网上已经已经说的很详细了,在使用过程中发现以下几点比较重要:

1.unittest执行顺序,对于每一个test,都要先执行setUp,再执行tearDown,并不是setUp执行完一次就了事了,对以上格式,setUp和tearDown应该执行两次,而不是一次

2.每一个test是按照函数名的字母顺序来执行的,换言之,对以上格式而言,即使将test_a,test_b交换位置,仍然是先执行test_a,再执行test_b

3.assert方法异常丰富,除了最基本的assertEqual,assertFalse,还有assertIs,assertIsNotNone等

4.1 在unittest中要查看更详细的信息,可以print,但是较不方便,可配置使用logging:

import logging

logging.basicConfig(filename=‘/Users/wenli.xu/Desktop/log1.log‘, level=logging.INFO)

其中,filename指示了日志路径,level指示了只有严重程度大于等于INFO才会被日志记录(logging的默认level是WARNING)。

严重程度从轻到重依次为:DEBUG,INFO,WARNING,ERROR,CRITICAL

此后使用以下方法,可将关键信息输出到相应的文件中:

logging.info(‘important info: %s‘, info)

若使用logging.debug(‘XXX‘),消息不会被记录在日志里。

4.2 使用logging.getLogger(‘log_name‘)可以得到root logger(logging)的实例,可在logger里进行各种个性化的设置

时间: 2024-11-13 12:24:47

Python中的unittest和logging的相关文章

[ Python入门教程 ] Python中日志记录模块logging使用实例

python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到屏幕. import logging logging.critical("critical log") logging.error("error log") logging.warning("warning log") logging.info(&q

Python中的日志管理Logging模块

1.基本的用法 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') 屏幕上打印: WARNING:root:This is warning message 默认情况下,logging将日志打印到屏幕,日志级别为WARNING:日志级别大小关系为:CRITICAL > ERROR >

python中的日志模块logging

1.日志级别5个: 警告Warning 一般信息Info  调试 Debug  错误Error 致命Critical 2.禁用日志方法 logging.disable(logging.DEBUG) 3.将日志写入文件 logging.basicConfig(filename='log.txt', level=logging.CRITICAL, format=' %(asctime)s - %(levelname)s - %(message)s') 4.格式化输出日志信息 注意事项: 1.日志输出

python中的Unittest常用方法

import unittest class SimpleUnitTest(unittest.TestCase): def test_Fail(self): self.failUnless(True) def test_Fail(self): self.failIf(False) def test_assertEqual(self): self.assertEqual(1,3-2) def test_assertNotEqual(self): self.assertNotEqual(1,3-0)

python中logging模块的使用

一.基本用法 只需要基本的配置,就可以使用了. import logging def fun2(): logging.basicConfig(filename="fun2.log",format="%(asctime)s %(message)s",level=logging.DEBUG) logging.debug("this is fun2 log") 二.进行详细配置 首先添加一个fileHandler来配置记录的文件,Formatter来设

python中的logging

python logging模块可能会令人困惑的地方 通过参阅python logging模块的代码,发现一些有趣的现象: 1. logging对象其实是一个树形结构,每个创建的logging对象都是root logging对象的孩子结点.当使用logging模块的getLogger(name=None)函数构造logging对象的时候,如果name为None,这样会产生一个root logging对象.如果name中含有.,比如name = 'a.b.c',通过这种方式会产生3个logging

Python中的logging模块【转】

基本用法 下面的代码展示了logging最基本的用法. 1 # -*- coding: utf-8 -*- 2 3 import logging 4 import sys 5 6 # 获取logger实例,如果参数为空则返回root logger 7 logger = logging.getLogger("AppName") 8 9 # 指定logger输出格式 10 formatter = logging.Formatter('%(asctime)s %(levelname)-8s:

Python中的logging模块

http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

在python中使用logging模块

import logging logging.basicConfig(level=logging.INFO, filename='mylog.log') logging.info('Starting program') logging.info('Trying to divide 1 by 0') print 1 / 0 logging.info('The division succeeded') logging.info('Ending program') 在python中使用logging模