从PHPUnit测试用例打印日志语句的最佳做法是什么?
我正在运行selenium测试用例,并希望打印出类似"登录已完成"," Page XY打开"。
我希望在我想要的任何日志文件中看到这些内容。如果您可以定义日志级别,那就太好了。
答案 0 :(得分:7)
我建议您使用Selenium Server Logging。它将为您提供您可能需要的所有调试信息。
如果它不是您的选项而您仍想从PHPUnit
测试用例进行登录,则有3个选项:
phpunit.xml
文件或命令行参数(documentation)配置; PHPUnit_Framework_TestListener
界面来创建您自己的记录器,这种界面有限,因为它只支持您可以记录的有限数量的事件,例如startTest
,endTest
,{ {1}},addError
等。有关受支持事件的完整列表,请参阅(documentation)。您可以在实现中添加更多事件,但这也需要您通过继承addFailure
类(documentation)或实现PHPUnit_Framework_TestSuite::run()
来覆盖PHPUnit_Extensions_TestDecorator
方法界面(documentation)。PHPUnit_Framework_Test
类并在那里实现日志记录功能。这将允许您从测试方法中进行记录。(documentation)答案 1 :(得分:4)
您可以实现一个测试监听器,在phpunit.xml.dist
中指定它,并根据需要执行任何操作(Monolog很受欢迎)请参阅the documentation以获得更好的写入和示例我可以写下我的头脑。
如果要在测试方法中指定消息,可以让测试继承自添加日志方法的公共类。并在那里做任何你想做的事。我不喜欢这个解决方案,但它肯定是一个选择。