【发布时间】:2018-03-20 12:18:24
【问题描述】:
我刚刚开始使用 Symfony 4,遇到了这个问题。
- 在运行功能测试时,在控制台上打印这样的调试消息是否正常?
$ 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.
- 可以禁用/抑制它吗?单元测试中似乎没有出现此消息。
编辑
通过将环境变量添加到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.
...
是否可以隐藏此错误消息?
更新
当我删除根项目中的vendor 和bin 目录时,似乎会出现此问题。尝试使用composer install 重新安装所有依赖项并不能解决此问题,因此我决定从头开始重新创建项目。这是我要做的步骤:
- 用
composer create-project symfony/skeleton my-project-name创建新的symfony项目 - 使用 composer 命令添加其他依赖项,例如 twig、maker、annotation 等。在安装所有依赖项并且功能测试没有问题之前,我不会直接编辑
composer.json。 - 将
.git目录从之前的项目复制到新的“重新创建”项目中以导入 git 历史记录。 - 我让 composer(symfony 配方)解析所有配置,覆盖我之前的配置。
- 在提交之前解决其他冲突
我让这个问题打开,以防有人弄清楚实际发生了什么以及如何在不重新创建项目的情况下解决它。
【问题讨论】:
标签: functional-testing symfony4