我已在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"
有人可以帮我知道我应该怎么写命令并从哪里执行它? 任何想法???
答案 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参数。