我有几个测试文件,一个其他人将继承的文件。
这是父文件:
<?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
答案 0 :(得分:0)
听起来您正在执行包含您班级的文件的多个include
。 include
导致PHP的行为就像所包含文件的内容只是在include
语句所在的位置键入一样。这样做不止一次,你的班级有两个定义。
您应该使用{1} an autoloader function(请参阅PSR-4)或(2)使用require
代替include
。
另一种可能性当然是你确实有两个类的定义,在这种情况下你需要重命名一个。
答案 1 :(得分:0)
这是因为我的测试父命名:
ReportTest
所以phpunit把它读作另一个测试类。
我把它改成了
ReportTestCase
并且比phpunit没有发现它作为测试,并且一切都很好。