2011-10-04 3 views
5

MSTestスイートを実行するNAntスクリプトを実行するタスクでクルーズコントロールを設定しました。 MSTestではテストカテゴリを指定できるため、「!Integration」(「統合テストを実行しない」を意味します)を指定します。 My Nantスクリプトは、コマンドラインから実行すると正常に実行されますが、Cruiseが実行すると、 "!Integration"ディレクティブが文字化けしています - クルーズ出力は、 '!キャラクター。その結果、統合テストを含むすべてのテストが実行されます。 ccnet.configからクルーズコントロール "!" NAntファイルの文字

エキス:クルーズ出力から

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

エキス:MyProject.buildから

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

エキス '!' 私が交換しようとしている

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

文字は

'&#33;' 

となりましたが、違いはありません。

答えて

0

はい、おそらくCCによって引き起こされたものではありません。 <exec>タスクでverbose="True"を設定し、未加工ビルドプロトコルを確認してください。レポートページに表示される内容が正確な出力ではないことを覚えておいてください(通常、行折り返しと白黒スペースの合併が起こります)。

おそらく、スクリプトをどこから実行するか、ビルドプロパティやさまざまな環境変数に隠された依存関係に依存します。後者は<exec program="cmd.exe" commandline="/c set" />で確認できます。プロパティの場合、次のスクリプトを使用できます。

<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> 
関連する問題