config/database.php 의 connections 에서 아래의 설정을 추가합니다.
'sqlite_testing' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
],
phpunit.xml 의 DB_DEFAULT 값을 sqlite_testing 으로 변경합니다.
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
<server name="DB_DEFAULT" value="sqlite_testing"/>
</php>
PHP Storm 을 사용할 경우, Languages & Frameworks > PHP > Test Frameworks 에서 phpunit.xml 을 지정하여야합니다.
단위 테스트 파일에서 RefresDatabase 을 선언합니다. 테스트 메소드가 호출될때마다 데이터베이스가 초기화(rollback, migrate)되므로, 초기화 데이터는 setUp() 에 추가합니다.
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ExampleTest extends TestCase
{
use RefreshDatabase;
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
}
패스포트를 테스트할 경우, setUp() 메소드에 아래와 같이 선언합니다.
protected function setUp(): void
{
parent::setUp();
$this->artisan('passport:install');
}
테스트 중 https 관련 cURL 오류가 발생하면, cacert.pem 파일을 다운로드 받은 후 php.ini 의 curl.cainfo, openssl.cafile 에 절대경로를 지정합니다.
반응형
'프로그래밍 > Web' 카테고리의 다른 글
Laravel Nova 설치하기 (0) | 2020.03.05 |
---|---|
Mac OS 에서 라라벨 개발 환경 구축 - Valet (1) | 2020.03.02 |
페이팔(paypal) sandbox 사용하기 (0) | 2018.02.22 |
PHPStorm Terminal 을 git bash 로 교체하기 (2) | 2017.08.31 |
Angular 에서 RxJS unsubscribe() 관련 팁 (0) | 2017.04.27 |
댓글