2015-01-04 1 views
0

여러 테스트 파일과 다른 파일이 상속 할 파일이 하나 있습니다. 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/ 

을 실행할 때

와 나는 당신이 당신의 클래스를 포함하는 파일 중 하나 이상 include을하고있는 것처럼

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

'path/to/folder' 또는'Initial \ Reports \ Tests' 네임 스페이스의 다른 곳에 'ReportTest'라는 또 다른 클래스가 있어야합니다. 이름을 바꿉니다. – Bjorn

답변

0

이 때문에 내 테스트 부모의 이름입니다 :

ReportTest 

그래서 phpunit을 다른 테스트 클래스로 읽습니다.

나는 시험로를 찾지 못했습니다

ReportTestCase 

과 phpunit을보다 그것을 변경하고, 모든 큰 일했습니다.

0

는 소리 얻을. include은 PHP가 포함 된 파일의 내용이 단순히 include 문과 같은 형식으로 입력 된 것처럼 동작합니다. 두 번 이상 해보면 두 가지 클래스 정의가 생깁니다.

사용 (1) an autoloader function (PSR-4 참조) 또는 (2) require 대신 include를 사용한다.

다른 가능성은 실제로 클래스의 두 가지 정의가있는 것입니다.이 경우 클래스의 이름을 변경해야합니다.

관련 문제