phpunit说我有类的双重定义

时间:2015-01-04 12:39:50

标签: php phpunit

我有几个测试文件,一个其他人将继承的文件。

这是父文件:

<?php

namespace Initial\Reports\Tests;

use Illuminate\Database\Eloquent\Model;
use Initial\Reports\DataFetcher;

const DONT_CARE = true;

class ReportTest extends \TestCase {

}

并且所有其他测试都继承自上述文件

他们都坐在同一个文件夹上。

当我跑

phpunit path/to/folder/

我得到了

PHP Fatal error:  Cannot redeclare class Initial\Reports\Tests\ReportTest in /Users/tzookb/Sites/lps.core/app/initial/Reports/tests/ReportTest.php

2 个答案:

答案 0 :(得分:0)

听起来您正在执行包含您班级的文件的多个includeinclude导致PHP的行为就像所包含文件的内容只是在include语句所在的位置键入一样。这样做不止一次,你的班级有两个定义。

您应该使用{1} an autoloader function(请参阅PSR-4)或(2)使用require代替include

另一种可能性当然是你确实有两个类的定义,在这种情况下你需要重命名一个。

答案 1 :(得分:0)

这是因为我的测试父命名:

ReportTest

所以phpunit把它读作另一个测试类。

我把它改成了

ReportTestCase

并且比phpunit没有发现它作为测试,并且一切都很好。