2011-10-04 9 views
5

Tengo el control de crucero configurado con una tarea para ejecutar un script NAnt, que ejecuta un conjunto MSTest. MSTest me permite especificar categorías de prueba, por lo que deseo especificar "! Integración" (lo que significa "no ejecutar pruebas de integración"). Mi script Nant se ejecuta correctamente cuando lo ejecuto desde la línea de comandos, pero cuando Cruise lo ejecuta, la directiva "! Integration" está siendo distorsionada: la salida de Cruise sugiere que inserte un salto de línea después del '!' personaje. El resultado es que todos mis pruebas se ejecutan, incluidas las pruebas de integración.Análisis de control de crucero "!" carácter en el archivo NAnt

Extracto 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> 

Extracto 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> 

Extracto de salida de cruceros: '!'

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

He intentado sustituir el personaje con

'&#33;' 

pero eso no hizo la diferencia.

¿Alguna idea, alguien?

Respuesta

0

Sí, quizás no sea causado por CC. Intente configurar verbose="True" en la tarea <exec> y compruebe el protocolo de compilación sin procesar. Recuerde que lo que ve en la página del informe no es el resultado exacto (por lo general, está sujeto a ajustes de línea y espacios en blanco combinados).

Tal vez dependa de dónde se ejecuta el script, una dependencia oculta de una propiedad de construcción o diferentes variables de entorno. Puede verificar esto último usando <exec program="cmd.exe" commandline="/c set" />. Para las propiedades, puede usar la siguiente secuencia de comandos:

<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> 
Cuestiones relacionadas