我正在开发一个Symfony项目。由于我需要进行单元测试,我从其网站下载并安装了Phpunit 6.2.4。 但是,当我尝试更新我的数据库时,我得到了这个输出
php bin/console doctrine:schema:update --dump-sql
PHPUnit 6.2.4 by Sebastian Bergmann and contributors.
unrecognized option --dump-sql
bin/console doctrine:schema:update
Cannot open file "doctrine:schema:update.php".
我尝试了其他控制台命令,但结果是一样的。基本上,我的猜测是Phpunit试图测试每个文件,所以我编辑了这样的phpunit.xml文件,使用了之前在其他项目中工作的文件。
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="app/autoload.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="app/" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory suffix=".php">tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">src</directory>
<exclude>
<directory>src/*Bundle/Resources</directory>
<directory>src/*/*Bundle/Resources</directory>
<directory>src/*/Bundle/*Bundle/Resources</directory>
</exclude>
</whitelist>
<blacklist>
<directory>bin</directory>
<directory>docker</directory>
</blacklist>
</filter>
</phpunit>
据我所知,将bin和docker目录列入黑名单会导致phpunit没有在其中运行任何内容,但它仍然无效。
然后我检查了我的composer.json的symfony / phpunit-bridge,将其删除并再次尝试,但问题仍然存在。
有没有人遇到过这个问题?
答案 0 :(得分:0)
黑名单似乎从代码覆盖率生成白名单中删除了目录 - 但是如果src /不包含这些子目录,那么它是多余的 - 并且添加和丢弃大量文件也会慢很多。在一个项目中,我试图将供应商列入黑名单,在开始运行测试之前,它甚至花了一分钟时间显示初始命令横幅。
删除<blacklist/>
部分,其余部分应该没问题 - 如果你没有提到bin /或docker /那么PHPunit将不需要读取文件,因此也不会运行它们。