运行单测时Codeception找不到class
Codeception can't find class when running single test
我正在为我目前正在进行的项目编写 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
这是我正在使用的文件夹结构:
ApiCest.php
只是用来快速bootstrap其他的测试。这是它的内容:
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
}
发生这种情况是因为 Tests\Users\GetCest
class 扩展了 Tests\ApiCest
class,但是没有为测试 classes 设置自动加载。
将此块添加到您的 composer.json 文件:
"autoload":{
"psr-4":{
"Tests\": "tests/api/Tests"
}
}
如果您已经有 autoload psr-4
块,只需向其中添加 "Tests\": "tests/api/Tests"
行。
我正在为我目前正在进行的项目编写 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
这是我正在使用的文件夹结构:
ApiCest.php
只是用来快速bootstrap其他的测试。这是它的内容:
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
}
发生这种情况是因为 Tests\Users\GetCest
class 扩展了 Tests\ApiCest
class,但是没有为测试 classes 设置自动加载。
将此块添加到您的 composer.json 文件:
"autoload":{
"psr-4":{
"Tests\": "tests/api/Tests"
}
}
如果您已经有 autoload psr-4
块,只需向其中添加 "Tests\": "tests/api/Tests"
行。