2011-10-04 28 views
5

Tôi có Kiểm soát hành trình được cấu hình với một nhiệm vụ để chạy tập lệnh NAnt, chạy bộ MSTest. MSTest cho phép tôi chỉ định các loại thử nghiệm vì vậy tôi muốn chỉ định "! Tích hợp" (có nghĩa là "không chạy các kiểm thử tích hợp"). Kịch bản của My Nant chạy thành công khi tôi chạy nó từ dòng lệnh, nhưng khi Cruise chạy nó, chỉ thị "Tích hợp" đang bị cắt xén - đầu ra của Cruise gợi ý rằng nó sẽ bị ngắt dòng sau '!' tính cách. Kết quả là tất cả chạy thử nghiệm của tôi, bao gồm kiểm tra tích hợp.Kiểm soát hành trình phân tích cú pháp "!" ký tự trong tập tin NAnt

Extract từ 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> 

Extract từ 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> 

Extract từ đầu ra Cruise: '!'

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

Tôi đã cố gắng thay thế ký tự có

'&#33;' 

nhưng không có sự khác biệt.

Bất kỳ ý tưởng nào, bất kỳ ai?

Trả lời

0

Có, có thể không phải do CC gây ra. Hãy thử đặt verbose="True" vào nhiệm vụ <exec> và kiểm tra giao thức xây dựng thô. Hãy nhớ những gì bạn nhìn thấy trên trang báo cáo không phải là kết quả chính xác (thường là tùy thuộc vào các dòng trắng và kết hợp).

Có thể nó phụ thuộc vào nơi bạn chạy tập lệnh, phụ thuộc ẩn trên thuộc tính xây dựng hoặc các biến môi trường khác nhau. Bạn có thể kiểm tra sau bằng cách sử dụng <exec program="cmd.exe" commandline="/c set" />. Đối với các thuộc tính, bạn có thể sử dụng tập lệnh sau:

<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> 
Các vấn đề liên quan