日志断言。
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):将检查字符串是否在该位置没有被记录 具体水平。