2017-03-27 5 views
0

Ich versuche travis während des Build-Prozesses Dredd-Tests auszuführen. Mir wurde klar, dass ich mariaDB als Teil des Prozesses ausführen muss. Ich bin unsicher, wie man eine Tabelle erstellt oder Beispieldaten einfügt, bevor dredd-Tests ausgeführt werden. Ich habe Mariadb als Addon zum travis.yml hinzugefügt und das ist es auch. Auch um dredd in travis laufen zu lassen, benutze ich auch docker-compose.Dredd Tests mit MariaDB mit TravisCI

EDIT:

Ich habe meine travis.yml

laufen
docker-compose up -d 
sleep 30 
BUNCH OF SQL COMMANDS to create tables and insert data 
dredd 

Aber an diesem Punkt meine dredd.yml hat

server: docker-compose up 

so scheinen ich nenne Docker-komponieren zuerst in travis und führen Sie mysql-Befehle aus und rufen Sie sie dann direkt vor dredd erneut auf. Ich glaube, ich sollte es nur direkt vor dem dredd Tests in einem Haken tun müssen

Antwort

0

es herausgefunden,

In meinem travis.yml I:

docker-compose up -d 
sleep 30 
~~RUN SQL COMMANDS TO CREATE TABLES/ADD DATA~~ 
docker-compose stop 
sleep 5 (to allow for compose to start up) 
dredd 

Da ist in meinem dredd.yml:

server: docker-compose up 
server-wait: 60 
0

Sie müssen Dredd Tests mit "Setup" und "Teardown" Aktionen, die die Datenbank füllen würde, bevor Ihre API getestet wird, und deaktivieren die Datenbank anschließend (um einzelne Tests zu isolieren).

Sie können dazu Dredd Hooks verwenden. Das Konzept von Isolation of HTTP Transactions ist auch in den Dredd-Dokumenten beschrieben.

+0

Wie würde ich die DB in den Haken JavaScript-Datei erhalten ? var db = require ("./ src/db"); hooks.beforeAll (...? – Jeff

+0

Ja, das sollte funktionieren. Hast du es versucht? –

+0

Ich tat, das Modul 'db' wurde nicht erkannt. Ich entschied mich, -docker-komponieren up -d, Schlaf 30, sql commands in einem Skript, das ich in der dredd.yml Datei als Server aufrufen: ./script.sh Doing scheint die Daten korrekt einzufügen, aber dann testet der dredd Fehler "fehlgeschlagen: Fehler bei der Verbindung zu Server im Test!" – Jeff