2010-09-23 7 views
9

Sto usando Junit sotto Ant per eseguire il test del selenio. I miei casi di test devono leggere i file che contengono dati di test (per eseguire il test guidato dai dati). Non mi interessa incorporare i nomi dei file nei casi di test, ma mi piacerebbe avere il nome della directory in cui sono memorizzati i file di dati parametrizzati nel file build.xml.Come posso passare i parametri a un test Junit da Ant?

Qual è il modo migliore per passare informazioni di questo tipo da build.xml ai casi di test? È una buona idea usare la proprietà ant? E 'possibile iniettare il parametro Junit4 da build.xml?

risposta

11

L'attività junit accetta elementi nidificati sysproperty.

<junit fork="no"> 
    <sysproperty key="mydatadir" value="${whatever}"/> 
    ... 
</junit> 

È possibile accedere a questi da dentro i test utilizzando System.getProperty().

+0

non ci sono problemi se i test paralleli utilizzano la stessa proprietà (sysproperty)? È possibile iniettare i dati di test nei parametri JUnit all'interno di Ant invece di recuperare i dati all'interno del test case? – user405458

+0

Hai bisogno di valori diversi in ogni thread parallelo? Hai l'elemento jvmarg di junit task, che può avere un effetto simile a sysproperty, ma non vedere alcun vantaggio. Non mi sembra ovvio quali altre opzioni dell'attività possano essere utilizzate per passare i dati. –