2015-12-23 6 views
6

Ich möchte eine Komponententestumgebung für mein Produkt einrichten. Ich habe eine Webanwendung auf nginx in Lua gebaut, die mysql und redis verwenden. Ich denke, Docker wird gut für diese sein, obwohl ich neu zu Docker bin. Meine Anwendung läuft auf dem Centos Server (Produktionsserver).docker unit test setup

Ich plane, verschiedene Container für mysql, redis und webapp einzurichten und dann UT-Anwendung (Komponententest für Lua mit Busted Framework) in meinem Mac (Mein Entwicklungscomputer ist MAC) oder VM zu schreiben, um es zu testen. Die UT-Anwendung kommuniziert mit dem Docker-Container nginx und nginx verwendet den Container mysql und redis. Ist das gut ? Wenn ja, kann mir jemand Anleitung geben? vielleicht ein guter Link? Wenn nein, was könnte besser sein. Ich habe bereits versucht, Landstreicher zu verwenden, aber das hat zu viel Zeit in Anspruch genommen, was nicht in meinem UT-Fall sein sollte.

+0

danke für bearbeiten @NicolBolas –

+0

Ich fürchte, Sie sind hier Terminologie zu mischen. Komponententests sind Tests, die dazu dienen, eine Komponente isoliert zu prüfen.Was Sie versuchen, sind Integrationstests, in denen Sie überprüfen, wie alles zusammen funktioniert. – Akira

+0

@Akira ich stimme zu. Eigentlich versuche ich, die Umgebung für den Integrationstest zusammen mit dem Komponententest einzurichten (mit dem busted framework). Es wird mir helfen, meine App gründlich zu testen. –

Antwort

2

Für ein Beispiel, wie wir unsere Projektvorlage einrichten, können Sie sich phundament/app und seine Testkonfiguration ansehen.

Wir verwenden eine dockerisierte GitLab Installation mit einer customized runner, die docker-compose ausführen kann.

Hinweis! Der Runner selbst läuft auf einem separaten Docker-Host.

Wir docker-compose.yml werden mit den services in einem Stapel mit Anpassungen für development und testing zu definieren.

Die CI configuration ist optimiert für mehrere gleichzeitige Tests von isolierten Stapeln, dies wird nur durch Angabe einer benutzerdefinierten COMPOSE_PROJECT_NAME getan.

Einige ausführliche Dokumentation über unseren Testprozess und nützliche Informationen über docker-compose und dockered CI.

Schließlich Travis CI unterstützt auch Docker seit einer Weile, aber ich habe nicht diesen Ansatz bei allen getesteten .