我刚刚在我的系统上安装了PHPUnit 3.5,从3.4升级它,我在使用新版本时遇到了一些麻烦。当我尝试运行测试时,我总是得到相同的输出。当我尝试在命令行上运行PHPUnit手册example 4.1中的StackTest
示例时,我得到了以下内容:
> 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.
更糟糕的是,当我尝试从网络浏览器运行它时,我得到以下输出:
Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /path/to/tests/StackTest.php on line 2
有谁知道如何设置它?感谢。
答案 0 :(得分:4)
我遇到了您在Windows上描述的问题。 问题是在第131行的文件pear \ PHPUnit \ Runner \ StandardTestSuiteLoader.php中,它是由条件中的文件名中的不同驱动器字母大小写引起的
if ($class->getFileName() == realpath($suiteClassFile)) {
我的简单修复是将此行更改为不区分大小写
if (strtolower($class->getFileName()) == strtolower(realpath($suiteClassFile))) {
答案 1 :(得分:1)
听起来好像PHPUnit不在你的包含路径上。要轻松测试,请尝试以下方法:
$ phpunit --include-path /path/to/PHPUnit StackTest
答案 2 :(得分:1)
我认为您的PHPUnit类名为StackTest
,而您要测试的类也名为StackTest
。这将导致PHPUnit中的路径冲突。
让这两个名字不同,你就可以解决这个问题了。
答案 3 :(得分:1)
phpunit MyTestClass
就我而言
<?php
,而非<?
)class MyTestClass extends PHPUnit_Framework_TestCase {
我知道这很可能不是最好的方式,只是指一个初学者开始。
答案 4 :(得分:0)
尝试
pear upgrade pear
(如果要求您进行频道升级,请执行此操作)
然后
pear install --force --alldeps phpunit/phpunit
然后再试一次。
3.5升级与错误的梨安装程序相结合(1.9.1有一个有点烦人的错误,所以确保你真的在1.9.2)有时会很痛苦。
答案 5 :(得分:0)
在我的情况下,这个问题是由于在源文件中通过require_once包含PHPUnit引起的:
require_once 'phar://phpunit.phar';
删除该行使我的测试用例可以运行。
答案 6 :(得分:0)
我能够解决问题。这是我加载课程的结果。我在参数数组中使用了我的参数,因此它起作用了。但是我必须先修复类路径等很多其他问题。要查看有效的解决方案,请查看此处(http://www.siteconsortium.com/h/p1.php?id=php002)。
$command = new PHPUnit_TextUI_Command();
$command->run(array('test', 'testCase', 'c:\workspace\project\testCase.php'), true);
答案 7 :(得分:0)
当您忘记让测试类扩展PHPUnit TestCase类时,也会导致此错误,例如
class MyTestClass extends \PHPUnit\Framework\TestCase { ...