我正在跟随ZendCast
继续在Zend Framework上编写单元测试。在视频和其他一些来源之间,我的phpunit.xml
如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./application/bootstrap.php" colors="true">
<testsuites>
<testsuite name="RefreshTests">
<directory>./</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">../application</directory>
</whitelist>
<exclude></exclude>
</filter>
<logging>
<log type="coverage-html" target="./log/report" charset="UTF-8"
yui="true" highlight="true" lowUpperBound="50" highLowerBound="80" />
<log type="testdox" target="./log/testdox.html" />
</logging>
</phpunit>
不幸的是,当我尝试使用此文件运行PHPUnit时,虽然我可以验证“boostrap.php”文件是否运行,但是我在运行时遇到此错误:
PHPUnit_Framework_Exception:既不能打开“RefreshTests.php”也不能打开“RefreshTests.php”。在第102行的C:\ Program Files(x86)\ php \ pear \ PHPUnit \ Util \ Skeleton \ Test.php
这似乎表明PHPUnit正在寻找一个基于我命名的测试套件的文件,以便找到要运行的测试,而不是尊重我希望它在整个目录上运行。尽管PHPUnit's documentation quite explicitly says that defining a test suite this way is allowed.
我做错了什么?
答案 0 :(得分:3)
错误意味着phpunit在递归扫描时无法在"."
目录中找到任何测试类。
如果找不到任何测试文件,则尝试打开名为testsuite的.php文件。因此错误。
确保您的TestClasses以Test.php
结尾或向suffix=".php"
标记添加<directory>
(或其他内容),并确保该文件包含一个也以{{1}结尾的类}。