如何从PHPUnit测试用例中进行日志记录?

Chr*_*ris 5 php logging phpunit

从PHPUnit测试用例打印日志语句的最佳做法是什么?

我正在运行selenium测试用例,并希望打印出"登录已完成","Page XY打开"等内容.

我想在我想要的任何日志文件中看到这些.如果您可以定义日志级别,那就太好了.

zaf*_*aja 7

我建议您使用Selenium Server Logging.它将为您提供您可能需要的所有调试信息.

如果它不是您的选项而您仍想从PHPUnit测试用例中记录,则有3个选项:

  1. 使用内置日志记录功能(文档),可以通过phpunit.xml文件或命令行参数(文档)进行配置;
  2. 通过实现创建自己的记录器PHPUnit_Framework_TestListener接口,这是一种有限的,因为它只支持事件,您可以登录,如数量有限startTest,endTest,addError,addFailure,等见(文件)所支持的事件的完整列表.您可以在实现中添加更多事件,但这也需要您PHPUnit_Framework_TestSuite::run()通过继承PHPUnit_Extensions_TestDecorator类(文档)或实现PHPUnit_Framework_Test接口(文档)来覆盖该方法.
  3. 最简单,更灵活的选择是对类进行子PHPUnit_Framework_TestCase类化并在那里实现日志记录功能.这将允许您从您的测试方法中进行登录.(文档)

  • 所以基本上没有最佳做法?我现在想(3)但这种方法对我来说非常尴尬. (2认同)