0

CircleCi 설정을 구성하려고합니다. 내 자신의 환경에서 테스트를 실행하려고하면 모든 것이 작동하지만 Circle CI에서 실행하려고하면이 오류가 발생합니다.데이터베이스를 호출하기 위해 circle.yml을 어떻게 구성합니까?

PHPUnit 5.6.0 by Sebastian Bergmann 및 기고자.

IIIII.IIIIIIIIIIIIIIIIIIIIIIIIIIIFFFFFFFFFFFFIIII.IIIIIIIIIIII 65/89 (73 %) IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII. 89분의 89 (100 %)

시간 : 1.27 초 메모리 : 56.00MB

(12 개)의 실패가 있었다 :

1) 앱 \ 테스트 \ TestCase에 \ 컨트롤러 \ TagsControllerTest :: testStages 예외 ' PDOException 'with message'SQLSTATE [HY000] [2002] 해당 파일이나 디렉토리가 없습니다. /home/ubuntu/cemcloud2/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php:48

이것은 오류의 첫 번째 부분.

데이터베이스 구성에 오류가 있습니다. 우리는 스크립트와 함께 Vagrant를 사용하고 있습니다 (이것이 실행 가능한지 확실하지 않음). 또한 우리는 mariaDB 10.1.19를 사용하고 있으며 테스트를 실행하기 위해 PHPUnit을위한 테스트 데이터베이스를 구축했습니다. 이 데이터베이스를 mariadb 및 특정 데이터베이스의 구성과 함께 추가하는 방법을 모르겠습니다.

은 내가 그래서 내가 거기에 그것을 추가 한 내 설정 파일에

database.yml.ci

를 추가해야하고 다음과 같습니다 것을 알고있다.

test: 
adapter: mysql 
database: cemcloudTest 
username: root 
password: '' 

또한 프로젝트 루트에 circle.yml을 추가했으며 다음과 같이 보입니다.

machine: 
php: 
    version: 7.0 
mysql: 
    version: 10.1.19 
database: 
override: 
    - cp config/database.yml.ci config/database.yml 
    - bundle exec rake db:create db:schema:load 

누군가 나를 도울 수 있습니까?

+0

업데이트 : 보호 기능 _connect ($ DSN, 배열 $ 설정) { 디버그 ($의 DSN 그래서

database: override: - mysql -u ubuntu -e "create database circle_ruby_test" 

이는 DB의 conf입니다); $ connection = new PDO ( $ dsn, $ config [ 'username'], $ config [ 'password'], $ config [ 'flags'] ); $ this-> connection ($ connection); return true; } 이것은 내 디버그를 넣은 곳이며이 코드를 다시 제공합니다. ########## 'mysql : host = localhost; port = 3306; dbname = cemcloud; charset = utf8' –

답변

0

귀하의 cicle.yml 데이터베이스에 테스트 구성에서 사용하는 이름으로 만들어야합니다.

test: # connection name 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    host: localhost 
    database: circle_ruby_test #your created DB 
    username: ubuntu #default circle user 
    pool: 25 
    socket: /var/run/mysqld/mysqld.sock # default sock location for circle 

HTH :)