2016-07-25 37 views
0

So habe ich so etwas wieKann ich übergeben Sie die alle <jvmarg> Parameter zu einer Ameise junit Aufgabe aus einer einzigen Datei

<junit fork="true" forkmode="perTest"> 
    <jvmarg value="-Darg.to.pass.our.tests.one=arg1"> 
    <jvmarg value="-Darg.to.pass.our.tests.two=arg2"> 
    <jvmarg value="-Darg.to.pass.our.tests.three=arg3"> 
    ... 
    <jvmarg value="-Darg.to.pass.our.tests.enn=argN"> 
</junit> 

ich die ideale kennen einmal gabelt, aber das ist nicht möglich, für unsere Tests aus Gründen gewonnen I geh nicht rein.

Meine Frage ist, kann ich so etwas wie:

<junit fork="true" forkmode="perTest"> 
    <jvmargs file="standard_args.properties"> 
</junit> 

Ich bin für die Freiheit suchen anderes Argument bei Testausführungszeit angeben.

Ich weiß, ich

<junit fork="true" forkmode="perTest"> 
    <jvmarg value="${arg.one}"> 
    <jvmarg value="${arg.two}"> 
    ... 
    <jvmarg value="${arg.enn}"> 
</junit> 

tun konnte, und ich tun, um diese Methode verwenden, aber dies stellt eine Erwartung über die genaue Anzahl der Argumente übergeben.

Irgendwelche Gedanken?

Antwort

1

, da alle Eigenschaften Ihrer auf Ihre Tests sind vorbei sind Eigenschaften System (-Dxxx = yyy), sollten Sie eine syspropertyset (cf ant Dokumentation für JUnit) in Betracht ziehen:

<property file="standard_args.properties"/> 
... 
<junit fork="true" forkmode="perTest"> 
    <syspropertyset> 
     <propertyref prefix="standard.arg"/> 
    </syspropertyset> 
</junit> 

unter der Annahme, dass Ihr Eigentum Datei standard_args.properties enthält Eigenschaften für Ihre Tests und alle diese Eigenschaften beginnen mit einem bestimmten Muster (zB standard.arg im obigen Beispiel).