我刚刚在我的系统上安装了 PHPUnit 3.5,从 3.4 升级它,但我在使用新版本时遇到了一些问题。当我尝试运行测试时,我总是得到相同的输出。这是我尝试在命令行上运行StackTestPHPUnit 手册中的示例时得到的结果,示例 4.1:
> phpunit StackTest
X-Powered-By: PHP/5.2.17
Content-type: text/html
PHPUnit 3.5.13 by Sebastian Bergmann.
Class StackTest could not be found in StackTest.php.
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,当我尝试从 Web 浏览器运行它时,我得到以下输出:
Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /path/to/tests/StackTest.php on line 2
Run Code Online (Sandbox Code Playgroud)
有谁知道如何设置?谢谢。
小智 5
我遇到了你在 Windows 上描述的问题。问题出在第 131 行的文件 pear\PHPUnit\Runner\StandardTestSuiteLoader.php 中,这是由条件中文件名的不同驱动器字母大小写引起的
if ($class->getFileName() == realpath($suiteClassFile)) {
Run Code Online (Sandbox Code Playgroud)
我的简单解决方法是将此行更改为不区分大小写
if (strtolower($class->getFileName()) == strtolower(realpath($suiteClassFile))) {
Run Code Online (Sandbox Code Playgroud)
听起来 PHPUnit 不在您的包含路径中。要轻松测试这一点,请尝试以下操作:
$ phpunit --include-path /path/to/PHPUnit StackTest
Run Code Online (Sandbox Code Playgroud)