我正在为我正在进行的项目编写API测试套件。
我可以使用
成功运行套件codecept run api
并且所有测试都成功通过,但每当我尝试使用
运行单个测试时codecept run api Tests\Users\Get
抛出以下错误:
PHP致命错误:第12行的/Users/Username/Programming/PHP/Project/tests/api/Tests/Users/GetCest.php中找不到类'测试\ ApiCest'
这是我正在使用的文件夹结构:
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
}
答案 0 :(得分:1)
这是因为Tests\Users\GetCest
类扩展了Tests\ApiCest
类,但是没有为测试类设置自动加载。
将此块添加到composer.json文件中:
"autoload":{
"psr-4":{
"Tests\\": "tests/api/Tests"
}
}
如果您已经autoload psr-4
阻止,请只添加"Tests\\": "tests/api/Tests"
行。