2012-06-08 23 views
11

Ho un progetto multimodulo in Intellij e ho un mucchio di proiettori di cetriolo nelle sorgenti di test di un sottomodulo che vorrei riutilizzare in un altro modulo. Se aggiungo l'altro modulo, come dipendenza, la sua normale directory ouptut viene aggiunta al percorso della classe junit ma non i suoi test in uscita.In Intellij è possibile che un modulo dipenda dai test di un altro modulo

È possibile che intellij esporti anche una directory di test dei moduli e consenta ad altri moduli di utilizzarli?

+0

L'output dei test deve essere aggiunto al classpath. Il tuo progetto è stato importato da Maven? – Nik

+0

possibile duplicato di [codice test di condivisione in Maven] (http://stackoverflow.com/questions/174560/sharing-test-code-in-maven) – thecoop

risposta

1

forse, ma si dovrebbe fare questo attraverso il tuo build automatizzato, cioè in Maven, non il tuo IDE. se pubblichi i test di un modulo di maven come dipendenza separata (cosa che faccio io), puoi aggiungere il jar di test come dep del altro modulo. Naturalmente IDEA gestirà questo automaticamente.

http://maven.apache.org/guides/mini/guide-attached-tests.html

+0

piacerebbe usare Maven, ma questa non è un'opzione. Grazie per il suggerimento però. – sgargan

+0

un'opzione è solo includere elementi nelle origini di produzione o creare un modulo "test" che contiene materiale di prova nell'approvazione di produzione ... – ianpojman

+0

Non è assolutamente possibile ottenere IntelliJ per consentire alle classi di test in un progetto di essere accessibili da le classi di test di un altro progetto dipendente? Ad esempio, eseguire test di debugging localmente tramite l'IDE – thecoop

2

Sì, è possibile ma non è semplice.

in modo da avere Modulo-A e Module-B.

Module-B ha un TestClass che forse si estende un AbstractClass o utilizza alcuni aiutanti statici da modulo-A

Nota: Questo funziona solo in IntelliJ, se usando Maven o Gradle dovrai verificare che questo continui a funzionare correttamente.

Ecco cosa è necessario fare.

  1. Goto Progetto Struttura ...(Ctrl+Alt+Shift+S - win/linux)
  2. Goto Moduli e guardare Modulo-A s' Percorso Tab
  3. Prendere nota del percorso di uscita di test o di copiare questo. Potrebbe essere qualcosa del genere: C:\dev\projects\myProject\moduleA\build\testclasses o simile.
  4. Goto Moduli e selezionare Modulo-B e guardare il suo Dipendenze tab.
  5. Si può già avere una dipendenza da modulo-A in qui per la compilazione e questo è ok.Click sul + o digitare (Alt+Insert) e aggiungere una nuova libreria (No 2 sulle opzioni)
  6. Sul selezionare la schermata delle biblioteche selezionare il pulsante Nuova libreria .... Selezionare l'opzione Java.
  7. Nella finestra di dialogo che si apre vai alla cartella di build che avevi sopra C:\dev\projects\myProject\moduleA\build\testclasses e fai clic su OK. Ora avrai le classi per il tuo modulo - qui.Assegnare un nome appropriato a Module-A Tests e modificare l'opzione Livello a Libreria moduli.
  8. Fare clic sul pulsante +(Alt+Insert) per aggiungere anche l'origine. Passare ai file src di test. E.G .: C:\dev\projects\myProject\moduleA\src\test e aggiungi questo e ora avrai aggiunto anche una Sorgente.
    1. Clicca OK e si tornerà alla finestra di Struttura del progetto.
    2. Ora sarà aggiunta una nuova libreria alle dipendenze. Modificare il ambito a prova
    3. Press OK in basso e hai fatto. Potrebbe essere necessario creare/pulire il progetto.

e ora avete depencies prova collegate tra i moduli.

Se riesci a pensare ad una soluzione migliore per favore fammelo sapere, ma questo è il modo più semplice che ho trovato per farlo.

+0

Vorrei davvero non averlo cercato .. (Sono pigro Immagino che mi limiterò a spostare le poche classi di test dei problemi astratti che devo * Modulo B *, non mi piace molto perché alcuni * Modulo A * I test dovranno essere spostati su * Modulo B * anche se stanno testando il codice in * Modulo A *, ma vabbè - è più semplice – ycomp

Problemi correlati