2017-04-20 1 views
0

현재 작업중인 프로젝트의 API 테스트 스위트를 작성하고 있습니다.단일 테스트를 실행할 때 코드를 찾을 수 없습니다.

내가 성공적으로

codecept run api 

등을 사용하여 제품군을 실행할 수있는 모든 테스트를 성공적으로 통과하고 있지만 때마다 나는 슬로우됩니다

codecept run api Tests\Users\Get 

다음과 같은 오류를 사용하여 단일 테스트를 실행 해보십시오 :

PHP Fatal error: Class 'Tests\ApiCest' not found in /Users/Username/Programming/PHP/Project/tests/api/Tests/Users/GetCest.php on line 12

사용중인 폴더 구조는 다음과 같습니다.

Folder structure

ApiCest.php은 신속하게 다른 테스트를 부트 스트랩하는 데 사용됩니다. 다음은 그 내용이다 :

namespace Tests; 

/* 
* This class is extended by the API tests. 
*/ 
use ApiTester; 

class ApiCest 
{ 
    public function _before(ApiTester $I) 
    { 
     $I->prepareRequest(); 
    } 

    public function _after(ApiTester $I) 
    { 
     // All API responses must be in a JSON format. 
     $I->seeResponseIsJson(); 
    } 
} 

그리고 이것은 그것이 GetCest.php에 사용되는 방법입니다

namespace Tests\Users; 

use ApiTester; 
use Codeception\Util\HttpCode; 
use Tests\ApiCest; 

/* 
* Tests for the GET /users API endpoint. 
*/ 
class GetCest extends ApiCest 
{ 
    // Tests methods are here but omitted 
} 

답변

2

Tests\Users\GetCest 클래스는 Tests\ApiCest 클래스를 확장하기 때문에 발생하지만, 자동 로딩이 설정되지 않은 테스트 클래스를.

은 composer.json 파일이 블록을 추가 : 이미 autoload psr-4 블록이있는 경우, 그것을 단지 "Tests\\": "tests/api/Tests" 줄을 추가

"autoload":{ 
    "psr-4":{ 
     "Tests\\": "tests/api/Tests" 
    } 
} 

.

+0

감사합니다. 이전에이 작업을 시도했지만 작동하지 않았습니다. 나는 그것을 제대로하지 않았을 것 같아요 :) 오, 나는'autoload' 대신에'autoload-dev'도 사용했습니다. – siannone