我刚刚在我的系统上安装了PHPUnit 3.5,从3.4升级而来,我在使用新版本时遇到了一些问题。当我尝试运行测试时,总是得到相同的输出。下面是我尝试在命令行上运行PHPUnit手册中的StackTest
示例(示例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.
更糟糕的是,当我尝试从Web浏览器运行它时,得到以下输出:
Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /path/to/tests/StackTest.php on line 2
有人知道怎么设置吗?谢谢。
9条答案
按热度按时间bgibtngc1#
我在Windows上遇到了你所描述的问题。问题在文件pear\PHPUnit\Runner\StandardTestSuiteLoader.php的第131行,是由条件中文件名的驱动器号大小写不同引起的。
我的简单修复方法是将此行更改为不区分大小写
wgxvkvu92#
就我而言
<?php
,而不是<?
)开始class MyTestClass extends PHPUnit_Framework_TestCase {
我知道这很可能不是最好的方法,只是点一个初学者开始。
fnx2tebb3#
尝试
(if它要求您进行通道升级)
然后再
然后重试。
3.5升级与一个有缺陷的梨安装程序(1.9.1有一个有点烦人的错误,所以请确保你真的在1.9.2)相结合,有时会是一个痛苦。
lyr7nygr4#
我认为你的PHPUnit类名为
StackTest
,而你要测试的类也名为StackTest
,这将导致PHPUnit中的路径冲突。让这两个名称不同,你会得到这个解决。
nqwrtyyt5#
在我的例子中,这个问题是通过require_once在源文件中包含PHPUnit引起的:
删除这一行使我的测试用例可以运行。
wn9m85ua6#
当您忘记让您的测试类扩展PHPUnit TestCase类时,也会导致此错误,例如
yvt65v4c7#
我能够修复这个问题。这是我加载类的方式造成的。我在参数数组中使用了我的参数,就像这样,它工作了。但是还有很多其他的类路径等问题,我必须首先修复。要查看一个工作的解决方案,请看这里(http://www.siteconsortium.com/h/p1.php?id=php002)。
ekqde3dh8#
从PHPUnit 9开始,要求文件名与测试中的类名匹配。
4105:不赞成在单个文件中使用多个测试用例类,并且测试用例类名称与文件名不同
因此,类名为
PluginTest
的test-plugin.php
将失败,并出现此错误。要修复此错误,需要将文件重命名为PluginTest.php
。错误的错误消息IMO。
lxkprmvk9#
听起来PHPUnit并不在你的include路径上。