Behat 3 및 Laravel을 사용하여 API를 테스트하는 데 혼란스러운 문제가 있습니다.Behat 3 및 Laravel, 테스트 환경이 적용되지 않습니다.
그것은 (내 경우에는 sqlite 메모리 데이터베이스) '테스트'환경 데이터베이스를 사용하지 않는 것 같습니다 ...하지만 시간의 일부만.
testing/database.php 파일에 로그 메시지를 넣었습니다.로드 된 시간을 확인하고 Behat을 실행할 때 로그 메시지가 표시됩니다.
하지만 Behat 기능을 실행하면 개발 데이터베이스에 행을 추가하는 것과 같은 이유로 내 테스트 중 일부가 실패합니다.
내 phpunit 테스트가 잘 실행되고 dev 데이터베이스가 변경되지 않습니다.
제가 놓친 behat.yml에 있어야 할 것이 있습니까?
EDIT : 나는 API를 테스트하기 위해 Guzzle을 사용하고 Behat의 설정 기능은 테스트 환경에서 작동하지만, 일단 Guzzle이 작동하면 앱은 테스트 환경에서 전혀 모른다. 그래서 나는 앱에 테스트 환경을 알려주거나 개발 환경을 사용하도록 behat에게 지시하는 방법을 찾아야한다.
예 - 데이터베이스와 로컬 url로 'acceptance'환경을 만들고 vhats 설정에 환경 변수를 설정하여 Behat 테스트를 실행할 때 laravel에게 알려줍니다. – Adamski
올바른 선택. MySql 스키마의 복사 자동화를위한 보너스 (Laravel이 비슷한 것을 가지고 있지만) 약간의 리펙토링으로 멋진 코드 조각이됩니다 : http://www.matteomattei.com/how-to-clone-mysql-database-schema- in-php/ –
SQLite가 MySQL보다 훨씬 빠르다는 것을 알았습니다. 메모리 내 모드를 사용하고 싶지만 요청간에 지속될 수는 없습니다. – Adamski