2013-05-31 145 views
3

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

但我希望结果能够单独进行每项测试。 当试图/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

我应该添加一些东西给我的路径变量,以使phpunit正常工作? –

回答

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

+0

但我应该从哪里执行这个命令我的意思是从哪个目录?它应该是应用程序还是供应商? –

+0

@hjfcbHfhbv项目根目录 –

+0

项目根目录是什么意思? –

0

正巧我也一样,但在事实上,我们误读的文档,你在命令行看看遗忘“应用”:

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

注意在应用程序参数命令句。