我得到 phpunit 并使用最简单的方法将其安装为这个链接以进行测试。
我只是下载 phpunit.phar 文件,chmod & rename & move to /usr/local/bin 然后,我运行 phpunit --version,没问题。
PHPUnit 3.7.27 by Sebastian Bergmann
我写了一个简单的测试
public function testSomething(){ $this -> assertTrue(true) }
然后我进入源文件夹,
phpunit --colors Test
有用。所以,我决定写一个复杂的演示。
我的项目文件夹结构是这样的。
Project Name --> app --> api --> tests
现在我写了一个简单的类
app/api/FlyApi.php
<?php class FlyApi { public function makeFly(){ //do something else } }
然后我为 FlyApi.php 编写另一个测试类
<?php class FlyApiTest extends PHPUnit_Framework_TestCase { public function testFly(){ //new a FlyApi $flyApi = new FlyApi(); //do something } }
在这一行
$flyApi = new FlyApi()
我得到了错误。PHP 致命错误:在第 23 行的 /home/kevin/Workspace/fly/app/api/FlyApi.php 中找不到类“FlyApi”
是的,这条线
$flyApi = new FlyApi()
问问题
3681 次
3 回答
1
你在使用 Laravel 的phpunit.xml文件吗?它包括 Laravel(和 Composer)的autoload.php
文件,让您可以在其中使用所有自动加载的类。
最后,整个错误是什么?它应该(希望)告诉您它正在尝试加载的类(如果命名空间错误或其他原因,它将为您提供线索)。
于 2013-09-22T16:52:18.343 回答
1
您没有加载FlyApi
类的定义。
这个解决方案是 Laravel 特有的:
您应该扩展TestCase
而不是PHPUnit_Framework_TestCase
.
于 2013-09-23T14:59:46.680 回答
1
尝试将您的/api/
文件夹添加到您的ClassLoader
at 中app\start\global.php
。
你会发现这个部分:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
...
app_path().'/api/
));
于 2013-09-22T12:54:36.637 回答