PHPUnit报告PHPUnit_框架_异常
我向bundle添加了一个简单的测试 按照手册中的建议,我尝试让PHPUnit加载以下配置:PHPUnit报告PHPUnit_框架_异常,phpunit,symfony,Phpunit,Symfony,我向bundle添加了一个简单的测试 按照手册中的建议,我尝试让PHPUnit加载以下配置: phpunit -c /app phpunit.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html --> <phpunit backupGlobals
phpunit -c /app
phpunit.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "bootstrap.php.cache" >
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*Bundle/Tests</directory>
</testsuite>
</testsuites>
</phpunit>
显然,PHPUnit加载该文件并尝试查找以测试套件名称命名的PHP文件。我找不到任何关于它为什么这样做或这样一个文件应该是什么样子的信息。似乎PHPUnit试图找到一个以testsuite标记的name属性命名的文件
今天我在测试我的控制器时遇到了同样的问题。因为PHPUnit找不到测试类,所以仅仅按照书中的命令是不起作用的。我设法找到了一个解决方法,只需指定要测试的测试文件,它就可以工作了
phpunit -c app src/Acme/DemoBundle/Tests/Utility/CalculatorTest.php
我也有同样的错误,我只是升级了我的phpunit版本就解决了,我有3.6.10,现在我有4.0.17,它工作得很好,正如预期的那样。
Synfony书并非完全错误,它只是将错误的phpunit版本声明为所需版本。碰巧我的包中有一个额外的目录级别。而不是
MyVendorName\MyBundleNameBundle
I拥有MyVendorName\MyProject\MyBundleNameBundle
testsuites
一节中phpunit.xml.dist
中的默认目录是:
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</testsuite>
</testsuites>
我加了这一行
<directory>../src/*/*/*Bundle/Tests</directory>
我换成这样:
<exclude>
<directory>../src/*/*Bundle/Resources</directory>
<directory>../src/*/*/*Bundle/Resources</directory>
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Resources</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>
../src/*/*捆绑包/资源
../src/*/*/*捆绑包/资源
../src/*/*捆绑/测试
../src/*/*/*捆绑/测试
../src/*/Bundle/*Bundle/Resources
../src/*/Bundle/*Bundle/Tests
我希望现在它是正确的;) 基本上就是这样,同意首先需要进入项目目录。那么只有命令才能起作用。。
<directory>../src/*/*/*Bundle/Tests</directory>
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</testsuite>
</testsuites>
<exclude>
<directory>../src/*/*Bundle/Resources</directory>
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Resources</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>
<exclude>
<directory>../src/*/*Bundle/Resources</directory>
<directory>../src/*/*/*Bundle/Resources</directory>
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Resources</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>