2009-07-16 17 views
19

Esiste un modo per eseguire JUnit-Test da diversi progetti in modo rapido e veloce in Eclipse?Esegui i test di Junit da diversi progetti in modo rapido e rapido in Eclipse

JUnit-Runner consente di definire un pacchetto o una cartella in cui vengono eseguiti tutti i test contenuti.

C'è un modo per farlo con i test di diversi progetti all'interno di Eclipse? Preferibilmente dovrebbe essere tramite il Junit-Runner. Se c'è un modo per averlo velocemente via un lavoro Ant (quindi non dipende da una build completa con formica prima), sarebbe anche bello.

risposta

3

Non è possibile farlo tramite l'interfaccia utente. Guardando i punti di estensione l'elemento di più alto livello che JUnit raccoglierà è il Progetto. Suppongo che potresti scrivere un plug-in per aggiungere un ulteriore elemento di contesto/scorciatoia per un set di lavoro, rendere funzionante impostare gli elementi di primo livello nel package explorer e raggruppare i progetti che vuoi testare insieme sotto quel working set. I problemi con questa operazione sono i problemi nella definizione delle regole di contesto per abilitare/disabilitare il contributo "Esegui come" e non sono sicuro che la semantica si estenda ai set di lavoro. Quindi dovresti scrivere una sorta di wrapper per iterare i progetti contenuti e raccogliere i loro tipi di test. Questo sembra un piccolo problema interessante. Oggi potrei avere un gioco dopo la scuola.

Un altro modo (un po 'meno) hacky sarebbe quello di impostare un altro progetto con dipendenze del progetto su tutti i vostri progetti di destinazione, quindi utilizzare le risorse collegate per portare tutti i tipi di test nel nuovo progetto (che ho postato un answer prima che descrive come collegare le fonti tra i progetti). Ovviamente se lo fai dovrai anche gestire le dipendenze del progetto di test.

Se si crea un TestSuite per ogni progetto e un altro TestSuite uber che fa riferimento a tutte le suite dei progetti, è necessario controllare ogni prova è incluso, che è soggetto a errori.

Se non hai voglia di chiacchierare con plugin o risorse collegate, probabilmente stai meglio usando Ant.

3

È possibile definire un progetto separato che dipende dagli altri progetti, che contiene una suite che fa riferimento ai singoli test o suite dei diversi progetti. Qualcosa di simile a questo:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ FirstProjectSuite.class, SecondProjectSuite.class}) 
public class AllSuites { } 
8

In realtà è abbastanza semplice eseguire test JUnit su più progetti da Eclipse. Dai un'occhiata a Classpath Suite. Non è con il runner JUnit standard, ma non hai menzionato da dove proveniva quel requisito, quindi non sono sicuro se questo ti riguarderà.

Tutte le informazioni di utilizzo è in quella pagina, ma per riassumere:

  1. creare un progetto di Eclipse a seconda tutti i progetti che si desidera testare.
  2. Scrivi una suite di test semplice compreso tutto:

    @RunWith(ClasspathSuite.class) 
    public class MySuite {} 
    
Problemi correlati