从 PHPUnit 测试用例打印日志语句的最佳实践是什么?
我正在运行 selenium 测试用例,并希望打印出类似“登录完成”、“页面 XY 已打开”之类的内容。
我想在我想要的任何日志文件中查看那些。如果您可以定义日志级别,那就太好了。
我建议您使用Selenium Server Logging。它将为您提供您可能需要的所有调试信息。
如果这不是您的选项并且您仍想从PHPUnit
测试用例中记录,您有 3 个选项:
phpunit.xml
文件或命令行参数(文档)进行配置;PHPUnit_Framework_TestListener
,这有点受限,因为它仅支持有限数量的事件您可以记录,例如startTest
, endTest
, addError
,等。有关受支持事件的完整列表,addFailure
请参阅(文档)。您可能会向您的实现添加更多事件,但这也需要您通过子类化类(文档)或实现接口(文档PHPUnit_Framework_TestSuite::run()
)来覆盖该方法。PHPUnit_Extensions_TestDecorator
PHPUnit_Framework_Test
PHPUnit_Framework_TestCase
该类并在那里实现日志记录功能。这将允许您从您的测试方法中登录。(文档)您可以实现一个测试侦听器,在phpunit.xml.dist
您的.
如果您想在测试方法中指定消息,您可以让您的测试从一个添加日志方法的公共类继承。在那里做任何你想做的事。我不喜欢将其作为解决方案,但这当然是一种选择。