2015-09-28 4 views
5

Ich habe ein Projekt, das aus einer Umbrella App besteht. Die untergeordneten Apps bestehen aus einer Core/Main/Domain-Anwendung, einer Delivery-App, einem datenbankgestützten Repository und einem In Memory Repository.Laufende Integration/Akzeptanztests für eine Regenschirm-App in Elixier

Ich möchte ein paar Integrationstests schreiben, die HTTP-Anfragen senden und die Änderungen in der Datenbank überprüfen. Da diese Tests die Koordination mehrerer untergeordneter Apps erfordern, gehören diese Tests in die Umbrella-App und nicht in ein einzelnes Testverzeichnis eines Kindes.

Das Standardumbrella-Projekt wird nicht mit einem Testverzeichnis erstellt, sodass ich nicht weiß, wo sie hingehören.

Ich habe ein Testverzeichnis erstellt und ein test_helper.exs hinzugefügt, das ExUnit.start und einen Test project_test.exs aufruft. aber wenn ich Mix-Test aus dem Dach Verzeichnis ausführen findet es nur Test in der apps/Komponente/Test-Verzeichnis und nicht die Tests in der Test-Verzeichnis

Antwort

2

Das Dach-Projekt soll wirklich eine Dach-Einrichtung sein, können Sie nicht füge Code oder Tests hinzu. Ich kann zwei Optionen:

  1. die Tests zur Anwendung hinzufügen, die auf allen anderen ab (wenn Sie eine haben)

  2. in Anwendungen eine andere Anwendung erstellen, die ist, wo Sie alle Integrationstests speichert

auf jeden Fall daran denken, dass ExUnit das Konzept der Tags hat und Sie können alle Integrationstests als solche und verwenden Sie das Tag-System auf/Ausschluss-Tests nach Belieben etikettieren. Dies sollte Ihnen helfen, Tests zu verwalten, wenn sie an Zahl zunehmen.

+0

Ich mag beide dieser Optionen etwas nicht. Nr. 1. weil es nicht immer möglich sein wird, und deshalb würde ich zu Option 2 gehen. Ich möchte nicht wirklich überall Apps erstellen, die als Integrationstest bezeichnet werden. Es scheint mir semantisch ziemlich klar zu sein, dass der Test für die Kohorte oder Apps und damit auf dieser Ebene gehört. –

+0

Ich bin zu Option 2 gegangen. Es macht Sinn, jetzt erkenne ich, dass Schirmprojekte aus einer flachen Gruppe von Anwendungen bestehen. –