2016-10-14 2 views
0

Ich versuche, alle Dateinamen durch einen bestimmten Filter zu bekommen, um in eine einzelne Variable zu gelangen, die durch Leerzeichen getrennt ist.Nant - Verketten bestimmter Dateinamen in einer einzigen Zeichenfolge

dies funktioniert:

<foreach item="File" property="filename"> 
     <in> 
      <items> 
       <include name="bin\*Test.dll" /> 
       <include name="bin\*Tests.dll" /> 
      </items> 
     </in> 
     <do> 
      <echo>Executing serverSideTests</echo> 
      <tstamp /> 
      <exec basedir="${devenv.dir}" program="VSTest.Console.exe" commandline='"${filename}" /TestCaseFilter:"TestCategory!=Debugging|TestCategory!=Upgrade"' failonerror="true" /> 
      <tstamp /> 
     </do> 
    </foreach> 

Ich möchte dies auszuführen:

VSTest.Console.exe file1 file2 ... 

Warum ich die oben tun möchten, in Verbindung mit dem oben I runsettings verwenden verschiedene Sätze von parallelisieren die Tests oben.

Wie verkette ich die Dateinamen in einen einzelnen durch Leerzeichen getrennten String?

+0

jemand eine Antwort auf diese Frage hat? –

Antwort

0

dachte, es selbst heraus, stellt sich heraus, es ist ziemlich einfach, wenn nicht intuitiv:

<property name="testAssemblies" value=""></property> 

<target name="test"> 
    <call target="clientSideTests" /> 
    <foreach item="File" property="filename"> 
     <in> 
      <items> 
       <include name="bin\*Test.dll" /> 
       <include name="bin\*Tests.dll" /> 
      </items> 
     </in> 
     <do> 
      <property name="testAssemblies" value='${testAssemblies} "${filename}"'></property> 
     </do> 
    </foreach> 
    <echo>Executing serverSideTests for ${testAssemblies}</echo> 
    <tstamp /> 
    <exec program="${devenv.test}\VSTest.Console.exe" commandline='${testAssemblies} /TestCaseFilter:"TestCategory!=Debugging|TestCategory!=Upgrade" /Settings:"vstest.runsettings"' failonerror="true" /> 
    <tstamp /> 
Verwandte Themen