Res*_*per 6 phpunit bundle symfony
我最近遇到了PHPUnit Bridge,并且已经在我的任何独立Symfony应用程序中使用它.但是,我注意到我们维护的可重用捆绑依赖项的一些弃用通知.
为了诊断,我打开了可重复使用的捆绑项目并进行了安装symfony/phpunit-bridge,但是在运行后phpunit注意到没有弃用通知等,正在为项目输出.
那么如何利用symfony/phpunit-bridge可重复使用的软件包?
\n\n\n我注意到我们维护的可重用捆绑依赖项出现了一些弃用通知。
\n\n为了进行诊断,我打开了可重用的捆绑项目并安装了
\nsymfony/phpunit-bridge,但运行后phpunit注意到该项目没有输出任何弃用通知等。
相同的代码并不总是触发相同的警告,这一事实可能表明测试是不同的。
\n\n如果这来自 PHP 代码,您可以使用PHP_CodeCoverage查看已测试和未测试的代码。当您使用 PHPUnit 时,您可以添加一个选项来生成代码覆盖率报告,例如phpunit \xe2\x80\xa6 --coverage-html cov/将在目录中生成 HTML 报告cov/。通过比较输出,您可以查看从 Symfony 启动的测试是否调用与从 Bundle 启动的测试相同的代码。
如果测试不同,您可以为您的包设置 Symfony 环境:
\n\n\n\n\n创建测试内核
\n\nRun Code Online (Sandbox Code Playgroud)\n\n<?php\n// Tests/Controller/App/AppKernel.php\n\nuse Symfony\\Component\\HttpKernel\\Kernel;\nuse Symfony\\Component\\Config\\Loader\\LoaderInterface;\n\nclass AppKernel extends Kernel\n{\n public function registerBundles()\n {\n $bundles = array(\n // Dependencies\n new Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle(),\n [...]\n // My Bundle to test\n new Beberlei\\WorkflowBundle\\BeberleiWorkflowBundle(),\n );\n\n return $bundles;\n }\n\n public function registerContainerConfiguration(LoaderInterface $loader)\n {\n // We don\'t need that Environment stuff, just one config\n $loader->load(__DIR__.\'/config.yml\');\n }\n}\n创建 config.yml
\n\nRun Code Online (Sandbox Code Playgroud)\n\n# Tests/Controller/App/config.yml\nframework:\n secret: secret\n charset: UTF-8\n test: ~\n router: { resource: "%kernel.root_dir%/routing.yml" }\n form: true\n csrf_protection: true\n validation: { enable_annotations: true }\n templating: { engines: [\'twig\'] }\n session:\n auto_start: false\n storage_id: session.storage.filesystem\n\nmonolog:\n handlers:\n main:\n type: fingers_crossed\n action_level: error\n handler: nested\n nested:\n type: stream\n path: %kernel.logs_dir%/%kernel.environment%.log\n level: debug\n创建routing.yml
\n\nRun Code Online (Sandbox Code Playgroud)\n\n# Tests/Controller/App/routing.yml\nBeberleiWorkflowBundle:\n resource: "@BeberleiWorkflowBundle/Controller/"\n type: annotation\n prefix: /\n修改 phpunit.xml.dist
\n\nRun Code Online (Sandbox Code Playgroud)\n<!-- phpunit.xml.dist -->\n<phpunit bootstrap="Tests/bootstrap.php">\n <php>\n <server name="KERNEL_DIR" value="Tests/Controller/App" />\n </php>\n</phpunit>\n
然后,您可以添加"symfony/symfony": "~2.3"所需的软件包composer.json并安装这些软件包。未来的测试将启动此 AppKernel 并在完整的 Symfony 环境中执行测试。