Phpunit尝试测试所有Symfony控制台命令

时间:2017-10-05 19:34:41

标签: symfony phpunit

我正在开发一个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,将其删除并再次尝试,但问题仍然存在。

有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:0)

黑名单似乎从代码覆盖率生成白名单中删除了目录 - 但是如果src /不包含这些子目录,那么它是多余的 - 并且添加和丢弃大量文件也会慢很多。在一个项目中,我试图将供应商列入黑名单,在开始运行测试之前,它甚至花了一分钟时间显示初始命令横幅。

删除<blacklist/>部分,其余部分应该没问题 - 如果你没有提到bin /或docker /那么PHPunit将不需要读取文件,因此也不会运行它们。