I Cruise Control è configurato con un'attività per l'esecuzione di uno script NAnt, che esegue una suite MSTest. MSTest mi consente di specificare le categorie di test, quindi voglio specificare "! Integrazione" (che significa "non eseguire test di integrazione"). Il mio script Nant viene eseguito con successo quando lo eseguo dalla riga di comando, ma quando Cruise lo esegue, la direttiva "! Integration" viene confusa - l'output di Cruise suggerisce di inserire un'interruzione di riga dopo "!" carattere. Il risultato è che tutti i eseguono i test, inclusi i test di integrazione.Analisi controllo crociera "!" carattere nel file NAnt
Estratto ccnet.config:
<tasks>
<nant>
<executable>C:\nant\bin\nant.exe</executable>
<baseDirectory>C:\MyProject\BuildDirectory</baseDirectory>
<buildFile>MyProject.build</buildFile>
<targetList>
<target>CIServerBuild</target>
</targetList>
</nant>
</tasks>
Estratto MyProject.build:
<target name="CIServerBuild">
:
<call target="RunUnitTests" />
</target>
<target name="RunUnitTests">
<property name="TestCategories" value="!Integration" />
<call target="RunMSTest" failonerror="true"/>
</target>
<target name="RunMSTest">
<call target="BuildListOfTestContainers" failonerror="true"/>
<exec program="${MSTest.exe}"
commandline=" /category:"${TestCategories}" ${TestContainers} /resultsfile:${MSTest.ResultsFile} /nologo "
/>
</target>
Estratto uscita Cruise: '!'
[exec] Starting 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe (/category:"!
Integration" /testcontainer:C:\TaxWise\BuildDirectory\TaxWise\TaxWise.Data.Tests\bin\Debug\TaxWise.Data.Tests.dll /testcontainer:C:\TaxWise\BuildDirectory\TaxWise\TaxWise.Domain.Tests\bin\Debug\TaxWise.Domain.Tests.dll /testcontainer:C:\TaxWise\BuildDirectory\TaxWise\TaxWise.Infrastructure.Tests\bin\Debug\TaxWise.Infrastructure.Tests.dll /resultsfile:.\TestResults\UnitTests.trx /nologo)'
in 'C:\TaxWise\BuildDirectory'
ho cercato di sostituire la personaggio con
'!'
ma questo non ha fatto differenza.
Qualche idea, qualcuno?