如何使用simple-phpunit抑制功能测试中的调试消息

时间:2018-03-20 12:18:24

标签: functional-testing symfony4

我刚开始使用Symfony 4并遇到此问题。

  1. 在运行功能测试时,在控制台上打印调试消息是否正常?
  2. $ vendor/bin/simple-phpunit 
    PHPUnit 5.7.27 by Sebastian Bergmann and contributors.
    
    Testing Functional Controller
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\TestSessionListener::onKernelRequest".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
    2018-03-20T18:51:20+07:00 [debug] Listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest" stopped propagation of the event "kernel.request".
    2018-03-20T18:51:20+07:00 [debug] Listener "Symfony\Bundle\FrameworkBundle\EventListener\ResolveControllerNameSubscriber::onKernelRequest" was not called for event "kernel.request".
    2018-03-20T18:51:20+07:00 [debug] Listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest" was not called for event "kernel.request".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\TestSessionListener::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\SaveSessionListener::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelFinishRequest".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelFinishRequest".
    2018-03-20T18:51:20+07:00 [debug] Notified event "kernel.terminate" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelTerminate".
    F                                                                   1 / 1 (100%)
    
    Time: 136 ms, Memory: 10.00MB
    
    There was 1 failure:
    
    1) App\Tests\Controller\HomeControllerTest::testHomepage
    Failed asserting that 404 matches expected 200.
    
    FAILURES!
    Tests: 1, Assertions: 1, Failures: 1.
    
    1. 可以禁用/抑制吗?这个消息似乎没有出现在单元测试中。
    2. 修改

      通过将环境变量添加到phpunit.xml我得到了它被抑制但现在它在测试未定义的路由时显示未捕获的异常。

      <phpunit>
          ...
          <php>
              <env name="APP_DEBUG" value="false" />
          </php>
          ...
      </phpunit>
      

      日志

      $ vendor/bin/simple-phpunit 
      PHPUnit 5.7.27 by Sebastian Bergmann and contributors.
      
      Testing 
      .2018-03-21T11:22:50+07:00 [error] Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /"" at vendor/symfony/http-kernel/EventListener/RouterListener.php line 144
      F.
      Time: 124 ms, Memory: 8.00MB
      
      There was 1 failure:
      
      1) App\Tests\Controller\HomeControllerTest::testHomepage
      Failed asserting that 404 matches expected 200.
      ...
      

      是否可以隐藏此错误消息?

      更新

      当我删除根项目中的vendorbin目录时,似乎会出现此问题。尝试使用composer install重新安装所有依赖项并不能解决此问题,因此我决定从头开始重新创建项目。这是我要做的步骤:

      • 使用composer create-project symfony/skeleton my-project-name
      • 创建新的symfony项目
      • 使用composer命令添加其他依赖项,例如twig,maker,annotation等。我没有直接编辑composer.json,直到安装了所有家属,并且功能测试没有问题。
      • .git目录从之前的项目复制到新的&#39;重新创建的&#39;项目导入git历史。
      • 我让composer(symfony recipe)解析所有配置,覆盖我以前的配置。
      • 在提交之前解决其他冲突

      如果有人知道实际发生了什么,以及如何在不重新创建项目的情况下解决问题,我就让这个qustion打开。

1 个答案:

答案 0 :(得分:0)

具有相同的问题,并已通过以下方式解决:

<env name="APP_ENV" value="test" />

在phpunit.xml文件中