日志断言。

logassert的Python项目详细描述


什么?

python unittests的简单日志断言机制。

为什么?

与vox populi一样,还必须测试程序中的日志调用。

使用logassert现在非常容易。

太棒了!如何使用?

您需要做的就是调用这个模块的setup()来传递测试用例 实例,以及要监视的记录器。

例如:

class MyTestCase(unittest.TestCase):
    """Example."""

    def setUp(self):
        logassert.setup(self, 'mylogger')

在本例中,mylogger是要监视的日志的名称。如果 代码的不同子系统登录到其他记录器,这个测试仪 不会注意到的。

然后,要使用它,只要调用assertLogged方法,它就是family, 传递所有要查找的字符串。

示例:

def test_blah(self):
    (...)
    self.assertLoggedDebug('secret', 'life', '42')

该行将检查“secret”、“life”和“42”是否都登录到 相同的日志记录调用,在调试级别。

所以,如果您记录了这个,测试将通过:

logger.debug("The secret of life, the universe and everything is %d", 42)

注意,选中的消息是替换了所有参数的消息。

但是如果您记录了以下任何一项,测试将失败(第一项是因为 它错过了其中一个字符串,第二个是因为它有错误的日志级别:

logger.debug("The secret of life, the universe and everything is lost")
logger.info("The secret of life, the universe and everything is 42")

我可以测试什么?

您将拥有几个断言方法:

  • self.assertlogged:将检查字符串是否已记录, 无论在哪个级别
  • self.assertloggedlevel(错误、警告、信息或 debug):将检查字符串是否记录在该特定级别。
  • self.assertnotlogged:将检查字符串是否未被记录, 无论在哪个级别
  • self.assertnotloggedlevel(错误、警告、信息或 debug):将检查字符串是否在该位置没有被记录 具体水平。

很好!但是…

如果您需要帮助,或有任何问题,或发现任何问题,请打开 票here

提前谢谢你的时间。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JScrollPane标题中禁用鼠标滚轮滚动?   java如何为篮球计分器应用程序存储包括球队名称在内的比赛分数?   java如何使用ADT接口实例化列表   JavaCV抓取帧方法延迟并返回旧帧   java在上传文件时处理网络问题   java如何创建2d阵列的克隆?   关于XMLGregorianCalendar的java信息   java XmlUnit在比较XML文件时忽略元素的顺序   java如何最好地检测无意义的文本?   克隆如何制作java扫描仪的副本?   验证Java中空值的BigDecimal数据类型   java字符串数组中的字数   java JavaFX:如何选择平铺并添加数字和边框线?   java更改jtable中从jar文件获取的特定行的颜色   正则表达式Java字符串。拆分:将\\W用作非单词分隔符时出现问题   当内存损坏时,Java中的同一引用/实例变量会发生什么变化?   java无法在Javadoc注释中链接到JDK10