2011-10-04 16 views
5

मेरे पास एक एनएएनटी स्क्रिप्ट चलाने के लिए एक कार्य के साथ क्रूज़ कंट्रोल कॉन्फ़िगर किया गया है, जो एक एमएसटीएस्ट सूट चलाता है। एमएसटीएस्ट मुझे टेस्ट श्रेणियों को निर्दिष्ट करने की अनुमति देता है, इसलिए मैं "एकीकरण" निर्दिष्ट करना चाहता हूं (जिसका अर्थ है "एकीकरण परीक्षण नहीं चलाएं")। जब मैं इसे कमांड लाइन से चलाता हूं, तो मेरी नेंट स्क्रिप्ट सफलतापूर्वक चलती है, लेकिन जब क्रूज़ इसे चलाता है, तो "! एकीकरण" निर्देश गड़बड़ हो रहा है - क्रूज़ आउटपुट ने '!' के बाद एक लाइन ब्रेक डालने का सुझाव दिया चरित्र। परिणाम यह है कि सभी मेरे परीक्षण एकीकरण परीक्षण सहित चलते हैं। 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> 

क्रूज उत्पादन से निकालें:

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

MyProject.build से निकालें '!'

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

के साथ चरित्र लेकिन इससे कोई फर्क नहीं पड़ता।

कोई विचार, कोई भी?

उत्तर

1

मैं निष्पादन कार्य में कमांडलाइन विशेषता को नेंट तर्क तत्वों में विभाजित करने का सुझाव देता हूं।

http://nant.sourceforge.net/release/0.85/help/tasks/exec.html

आप अधिक लचीलापन होगा और पठनीयता में वृद्धि होगी।

0

हां, शायद यह सीसी के कारण नहीं है। को <exec> कार्य पर सेट करने का प्रयास करें और कच्चे निर्माण प्रोटोकॉल की जांच करें। याद रखें कि आप रिपोर्ट पेज पर जो देखते हैं वह सटीक आउटपुट नहीं है (आमतौर पर लाइन-रैप और कोलेसिंग व्हाइटसाइट्स के अधीन)।

शायद यह इस बात पर निर्भर करता है कि आप स्क्रिप्ट को कहां चलाते हैं, निर्माण संपत्ति पर एक छिपी निर्भरता या विभिन्न पर्यावरण चर। आप बाद में <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>