我在使用Laravel的代码时遇到错误。即使我在邮递员中测试路线并且它工作,它也没有进行插入,我还调试了控制器以查看它是否被异常捕获但它没有,我知道它没有插入因为$ I-&gt ; seeInDatabase()方法,但表中id的自动增量确实递增。如果我使用postman进行测试,它也会持续插入(如果我在postman之前使用codeception运行测试,则会增加id)。这是我的考验:
public function RegistrarCorrectamente(ApiTester $I) //200
{
$I->wantTo('Registrarse correctamente');
$I->sendPOST($this->url, [
'email' => 'tester123@gmail.com',
'first_name' => 'Prueba4',
'last_name' => 'Probador',
'community_id' => 2,
]);
$I->seeInDatabase('app.users_x_communities', array('email' => 'tester123@gmail.com'));
$I->seeInDatabase('app.users', array('first_name' => 'Prueba4'));
/*$this->checkResponseCode($I, HttpCode::OK);*/
$I->seeResponseIsJson();
$I->seeResponseContainsJson(array(
'estado' => true,
));
}
seeInDatabase方法没有看到插入。
任何线索如何解决这个问题?另外,这是我的yml文件和.env:
api.suite.yml:
class_name: ApiTester
modules:
enabled:
- \Helper\Api
- Asserts
- Laravel5
- Db
- REST:
url: http://localhost:8000/api/
depends: Laravel5
config:
Laravel5:
environment_file: .env.testing
codeception.yml:
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: false
memory_limit: 1024M
extensions:
enabled:
- Codeception\Extension\RunFailed
modules:
config:
Db:
dsn: 'pgsql:host=localhost;port=5432;dbname=movers'
user: 'postgres'
password: '1234'
.env.testing:
APP_ENV=testing
APP_KEY=base64:WRVmtVKixE3/MQ5bcDA3rrEaYqCavwaoleuRkcZtc4w=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=movers
DB_USERNAME=postgres
DB_PASSWORD=1234
API_VERSION=v1
API_NAME="Movers API"
API_PREFIX=api
API_STANDARDS_TREE=vnd
API_SUBTYPE=movers
API_DEBUG=true
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
为了澄清,我已经尝试过清理(真假)和填充(真假)。
提前致谢!
答案 0 :(得分:0)
Laravel5模块在事务内部运行测试,然后将其回滚:
cleanup:boolean,默认为true - 所有数据库查询都将在事务中运行,该事务将在每次测试结束时回滚。
Db模块无法查看记录,因为它使用单独的数据库连接。
使用Laravel模块的seeRecord方法或禁用清理。