从控制台symfony设置phpunit命令

时间:2013-05-31 14:50:53

标签: php symfony

我已在php unit first test symfony上发布了此问题 我通过作曲家安装phpunit作为每个项目安装。 尝试vendor/bin>phpunit -c ../../app时,每件事情都没问题,我得到了肯定的回答。 而这个命令给出了tests目录中所有测试的答案。

但我希望结果只针对每一个测试。 在尝试/vendor/bin>phpunit -c ../../src/xxx/Bundle/tests/entity/yyy.php时,我收到以下消息:could not load c:\wamp\www\symfony\src/xxx/Bundle/tests/entity/yyy.php Parse PI : PI php never end ... Start ttag expected, '<' not found

并在尝试/vendor/bin>phpunit -c ../../src/xxx/Bundle/tests/entity/yyy时收到以下消息:could not read "..\..\src/xxx/Bundle/tests/entity/yyy"

有人可以帮我知道我应该怎么写命令并从哪里执行它? 任何想法???

2 个答案:

答案 0 :(得分:12)

请勿在此处使用-c选项。 -c选项是--configuration的快捷方式,它指向PHPunit配置文件的目录(如app/phpunit.xml.dist)。该配置告诉PHPunit在哪里查找测试类和其他一些配置,比如bootstrap文件。

如果要为特定测试运行测试,可以像phpunit path/to/tests/MyTest.php那样进行测试。但是你会松开自动加载。要获得该功能,可以使用--bootstrap选项指向引导程序文件。所以它将是phpunit --bootstrap vendor/autoload.php path/to/tests/MyTest.php

如果您想更频繁地运行此命令,可以更好地编辑app/phpunit.xml.dist文件并创建新套件:

<?xml version="1.0" encoding="utf-8" ?>
<phpunit ...>
    <!-- ... -->

    <testsuites>
        <testsuite name="MyBundle">
            <file>path/to/tests/MyTest.php</file>
        </testsuite>
    </testsuites>

    <!-- ... -->
</phpunit>

然后运行:phpunit -c app --testsuite MyBundle

答案 1 :(得分:0)

也发生在我身上,但实际上我们在命令行中误读了你忘记'app'的文档:

phpunit -c app src/AppBundle/Tests/Util/CalculatorTest.php

请注意命令句中的app参数。