2011-10-04 16 views
5

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:&quot;${TestCategories}&quot; ${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

'&#33;' 

ma questo non ha fatto differenza.

Qualche idea, qualcuno?

risposta

0

Sì, forse non è causato da CC. Prova a impostare verbose="True" nell'attività <exec> e controlla il protocollo di generazione non elaborato. Ricorda ciò che vedi nella pagina del report non è l'output esatto (tipicamente soggetto agli spazi bianchi a linea e a coalescenza).

Forse dipende da dove si esegue lo script, da una dipendenza nascosta su una proprietà di build o da diverse variabili di ambiente. È possibile controllare quest'ultimo utilizzando <exec program="cmd.exe" commandline="/c set" />. Per le proprietà è possibile utilizzare il seguente script:

<script language="C#" prefix="util" verbose="true"> 
    <code> 
     <![CDATA[ 
     public static void ScriptMain(Project project) 
     { 
      foreach (DictionaryEntry entry in new System.Collections.SortedList(project.Properties)) 
       Console.WriteLine("{0}={1}", entry.Key, entry.Value); 
     } 
     ]]> 
    </code> 
    </script> 
Problemi correlati