2015-09-28 25 views
5

Ho un progetto costituito da un'app di Umbrella. Le app secondarie sotto l'ombrello sono costituite da un'applicazione core/principale/dominio un'app di consegna, un repository supportato da database e un repository in memoria.Esecuzione di test di integrazione/accettazione per un'app per ombrelli in elisir

Vorrei scrivere alcuni test di integrazione che inviano richieste HTTP e controllare le modifiche nel database. Poiché questi test richiedono il coordinamento di diverse app per bambini, questi test appartengono all'app dell'ombrello e non in una singola directory di test childs.

Il progetto di ombrello predefinito non viene creato con una directory di test, quindi non sono sicuro di dove appartengano.

Ho creato una directory di test e aggiunto un test_helper.exs che chiama ExUnit.start e un test project_test.exs. ma quando eseguo il mix test dalla directory umbrella trova solo test nella directory apps/component/test e non nei test nella directory di test

risposta

2

Il progetto di ombrello è pensato per essere una struttura a ombrello davvero, non è possibile aggiungere codice o test ad esso. Vedo due opzioni:

  1. Aggiungere i test per l'applicazione che dipende da tutti gli altri (se ne avete uno)

  2. Creare un'altra applicazione in applicazioni che è dove si memorizzare tutti i test di integrazione

In ogni caso, ricordate che ExUnit ha il concetto di tag ed è possibile contrassegnare tutte le prove di integrazione in quanto tale, e utilizzare il sistema di tag per includere/escludere i test a volontà. Questo dovrebbe aiutarti a gestire i test man mano che crescono di numero.

+0

Non mi piacciono molto entrambe le opzioni. No.1. perché non sarà sempre possibile e quindi per questo motivo andrò all'opzione 2. Non voglio davvero creare app dappertutto chiamate test di integrazione. Mi sembra semanticamente chiaro che i test sono per la coorte o le app e quindi appartengono a quel livello. –

+0

Sono andato all'opzione 2. Ha senso ora mi rendo conto che i progetti ombrello consistono in un gruppo di applicazioni piatto. –