2011-10-04 2 views
5

J'ai Cruise Control configuré avec une tâche pour exécuter un script NAnt, qui exécute une suite MSTest. MSTest me permet de spécifier des catégories de test donc je veux spécifier "! Intégration" (ce qui signifie "ne pas lancer de tests d'intégration"). Mon script Nant s'exécute correctement lorsque je l'exécute à partir de la ligne de commande, mais lorsque Cruise l'exécute, la directive "! Integration" est brouillée - la sortie Cruise suggère d'insérer un saut de ligne après le '!' personnage. Le résultat est que tous mes tests, y compris les tests d'intégration.Cruise Control analyse "!" caractère dans le fichier NAnt

Extrait de 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> 

Extrait de 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> 

Extrait de la sortie de la croisière: '!

[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' 

J'ai essayé de remplacer la caractère avec

'&#33;' 

mais cela n'a fait aucune différence.

Des idées, quelqu'un?

Répondre

0

Oui, ce n'est peut-être pas dû à CC. Essayez de définir verbose="True" sur la tâche <exec> et vérifiez le protocole de génération brut. Souvenez-vous que ce que vous voyez sur la page du rapport n'est pas le résultat exact (généralement soumis à des espaces blancs et à des espaces blancs coalescents).

Peut-être que cela dépend de l'endroit où vous exécutez le script, d'une dépendance cachée sur une propriété de construction ou de différentes variables d'environnement. Vous pouvez vérifier ce dernier en utilisant <exec program="cmd.exe" commandline="/c set" />. Pour les propriétés, vous pouvez utiliser le script suivant:

<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> 
Questions connexes