3

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

但我只希望每次测试都得到结果。尝试时 /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"

任何人都可以帮助我知道我应该如何编写命令以及从哪里执行它???有任何想法吗???

4

2 回答 2

12

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

如果您想为特定测试运行测试,您可以像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

于 2013-06-01T17:57:10.827 回答
0

我也发生过,但实际上我们误读了您在命令行中忘记了“应用程序”的文档:

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

注意命令句中的 app 参数。

于 2017-05-20T21:34:25.170 回答