2011-03-08 49 views
5

执行一个命令行命令我必须在CruiseControl.NET配置的代码块:从CruiseControl.NET

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

其次是将我的网站上运行一些Selenium测试的NUnit执行命令。这个想法是,这个命令在运行测试之前更改测试浏览器(系统环境变量)。

问题是该命令似乎没有工作。测试仍在使用默认浏览器Firefox。它可以工作,如果我手动更改环境变量。

我在做什么错?

编辑:

我试图把该命令在批处理文件并在执行,但它仍然没有奏效:

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

批处理文件内容:

SETX SELENIUM_BROWSER googlechrome /M 
+2

通常,我保持CC.NET配置非常简单,只需启动NANT或其他构建脚本,这些脚本在定义构建操作方面要好得多。 CC用于编排和报告结果,但在定义构建时不太好。 – 2011-03-08 13:56:14

+0

我真的没有什么特别的。据称CC.NET具有运行简单命令的功能。我只是不明白为什么它不起作用。 – Edgar 2011-03-08 13:58:25

回答

8

像这样命令格式化可正确设置环境变量:

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

现在我需要弄清楚为什么我的NUnit测试不能正确地检测它。

UPDATE:

应该使用的environment元素在执行任务变量传递给测试。例如:

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

我实际执行的浏览器在一个小的配置文本文件作为一种变通方法设置,但该元素将使它更容易,我也不会需要运行任何命令行命令。