2011-03-08 24 views
5

tengo este bloque de código en la configuración CruiseControl.NET:Ejecutar un comando de línea de comandos desde CruiseControl.NET

<exec> 
    <executable>C:\Windows\System32\cmd.exe</executable> 
    <buildArgs>/C SETX SELENIUM_BROWSER googlechrome /M</buildArgs> 
</exec> 

Es seguido por un comando de ejecución NUnit que se ejecutará algunas pruebas Selenium en mi sitio web. La idea es que este comando cambie el navegador de prueba (variable de entorno del sistema) antes de ejecutar las pruebas.

El problema es que el comando no parece funcionar. Las pruebas siguen usando el navegador predeterminado, Firefox. Funciona si cambio manualmente la variable de entorno.

¿Qué estoy haciendo mal?

EDIT:

He intentado poner el comando en un archivo por lotes y la ejecución de eso, pero todavía no ha funcionado:

contenido del archivo
<exec executable="C:\CCNet\setChrome.bat" /> 

el lote:

SETX SELENIUM_BROWSER googlechrome /M 
+2

En general, mantengo la configuración de CC.NET muy simple y simplemente inicio NANT u otras secuencias de comandos de compilación que son mucho mejores en la definición de acciones de compilación. CC es para orquestación e informes de resultados, pero no tan bueno en la definición de compilaciones. –

+0

Realmente no estoy haciendo nada excepcional. CC.NET supuestamente tiene la funcionalidad para ejecutar un comando simple. Simplemente no entiendo por qué no está funcionando. – Edgar

Respuesta

8

Al formatear el comando de este modo, se establece la variable de entorno correctamente:

<exec> 
    <executable>cmd</executable> 
    <buildArgs>/C SETX SELENIUM_BROWSER googlechrome /M</buildArgs> 
</exec> 

Ahora tengo que averiguar por qué mis pruebas de NUnit no están recogiendo correctamente.

ACTUALIZACIÓN:

debería haber utilizado el elemento environment en la tarea ejecutable para pasar variables a la prueba. Por ejemplo:

<exec> 
    <executable>make</executable> 
    <baseDirectory>D:\dev\MyProject</baseDirectory> 
    <buildArgs>all</buildArgs> 
    <buildTimeoutSeconds>10</buildTimeoutSeconds> 
    <successExitCodes>0,1,3,5</successExitCodes> 
    <environment> 
     <variable> 
      <name>MyVar1</name> 
      <value>Var1Value</value> 
     </variable> 
     <variable name="MyVar2" value="Var2Value" /> 
    </environment> 
</exec> 

que realmente implementado la configuración en un archivo de configuración poco texto como una solución navegador, pero este elemento se habría hecho más fácil y no habría necesitado para ejecutar cualquier comando de los comandos de línea.

Cuestiones relacionadas