0

Ich versuche, das CircleCi-Setup zu konfigurieren. Wenn ich versuche, die Tests in meiner eigenen Umgebung auszuführen, funktioniert alles, aber wenn ich versuche, es in Circle CI auszuführen, habe ich diesen Fehler.Wie konfiguriere ich circle.yml, um die Datenbank aufzurufen?

PHPUnit 5.6.0 von Sebastian Bergmann und Mitwirkende.

IIIII.IIIIIIIIIIIIIIIIIIIIIIIIIIIIIFFFFFFFFFFFFIIII..IIIIIIIIIIII 65/89 (73%) IIIIIIIIIIIIIIIIIIIIIII. 89/89 (100%)

Zeit: 1,27 Sekunden, Speicher: 56.00MB

Es gab 12 Ausfälle:

1) App \ Test \ Testcase \ Controllers \ TagsControllerTest :: testStages Ausnahme " PDOException‘mit der Meldung 'SQLSTATE [HY000] [2002] Eine solche Datei oder das Verzeichnis' in /home/ubuntu/cemcloud2/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php:48

Dies ist erster Teil des Fehlers.

Ich bekomme, dass ich einen Fehler mit meiner Datenbankkonfiguration habe. Wir verwenden Vagrant mit dem Skript (nicht sicher, ob das möglich ist). Auch wir verwenden mariaDB 10.1.19 und ich habe eine Testdatenbank für PHPUnit aufgebaut, um die Tests gegen zu führen. Ich weiß nicht, wie man diese Datenbank mit der Konfiguration von Mariadb und spezifischer Datenbank hinzufügt.

Ich weiß, dass ich die

database.yml.ci

meiner Konfigurationsdatei hinzufügen müssen, so habe ich es dort gegeben, und es sieht so aus.

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

Auch ich habe die circle.yml zu unserem Projekt root hinzugefügt und es sieht so aus.

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 

Könnte mir jemand helfen?

+0

Update: geschützte Funktion _connect ($ dsn, array $ config) { debug ($ dsn); $ connection = new PDO ( $ dsn, $ config [ 'username'], $ config [ 'password'], $ config [ 'Flags'] ); $ this-> Verbindung ($ Verbindung); Rückkehr wahr; } Dies ist, wo ich mein Debug gesetzt habe und es gibt mir diesen Code zurück. ########## DEBUG ########## 'mysql: host = localhost; port = 3306; dbname = cemcloud; charset = utf8' –

Antwort

0

in Ihrer cicle.yml-Datenbank müssen mit Namen erstellt werden, den Sie in Ihrer Testkonfiguration verwenden.

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

Damit ist dies die db conf:

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 :)

Verwandte Themen