2008-08-06 22 views
12

में एमबीयूनीट का उपयोग करके मैं टीमसिटी निरंतर एकीकरण सर्वर के साथ लिनक्स पर एक NANT प्रोजेक्ट संकलित कर रहा हूं। मैं कमांड लाइन रनर के माध्यम से मोनो पर NANT चलाकर एक परीक्षण रिपोर्ट उत्पन्न करने में सक्षम हूं लेकिन एनएएनटी रनर की तरह रिपोर्ट का उपयोग करने के विकल्प नहीं हैं। मैं परीक्षण ढांचे के लिए एमबीयूनीट का भी उपयोग कर रहा हूं।टीमसिटी

मैं परीक्षण रिपोर्ट में कैसे विलय कर सकता हूं और प्रदर्शित करता हूं "टेस्ट विफल: 1 (1 नया), पास के लिए 3049"?

अद्यतन: MBUnitTask इसकी एक NAnt कार्य संदेशों कि TeamCity NUnit से उम्मीद तो यह आप के लिए परीक्षण TeamCity की सभी सुविधाओं का उपयोग करने देता है भेजता है का उपयोग करता है पर एक नज़र डालें।

MBUnitTask

अद्यतन: Galio ताकि आप केवल MBUnit 3.5 DLLs के बजाय Galio MBUnit 3.5 DLLs संदर्भ और galio धावक करने के लिए स्विच यह काम करने के लिए करने के लिए है बेहतर समर्थन हासिल है।

उत्तर

6

उत्पादन TeamCity सेवा संदेशों को Gallio now has an extension तरह लग रहा है दे देंगे । बस शामिल Gallio.NAntTasks.dll का उपयोग करें और TeamCity एक्सटेंशन को सक्षम करें। (इस won't be necessary in the next release)

+1

फिर मैं इस दूसरे दिन अपडेट किया है कि शामिल करने के लिए, galio जीवन इतना आसान बना देता है –

4

टीमसिटी बिल्ड से कमांड लाइन आउटपुट देखता है। आप यह बता सकते हैं कि आउटपुट में कुछ मार्कर डालने से आपके परीक्षण कैसे चल रहे हैं http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity देखें। उदाहरण के लिए

##teamcity[testSuiteStarted name='Test1'] 

टीमसिटी को यह पता चलेगा कि परीक्षणों का एक सेट शुरू हुआ है। एमबीयूनीट के साथ आप परीक्षण करते समय इन मार्करों को आउटपुट नहीं कर सकते हैं, लेकिन आप एक्सएमएल फ़ाइल को आउटपुट कर सकते हैं। यहाँ XSL है कि मैं का उपयोग कर रहा है:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="text"/> 
    <xsl:template match="/"> 

     <xsl:apply-templates/> 

    </xsl:template> 

    <xsl:template match="assemblies/assembly"> 
##teamcity[testSuiteStarted name='<xsl:value-of select="@name" />'] 

     <xsl:apply-templates select="//run" /> 

##teamcity[testSuiteFinished name='<xsl:value-of select="@name" />'] 
    </xsl:template> 

    <xsl:template match="run"> 

     <xsl:choose> 
      <xsl:when test="@result='ignore' or @result='skip'"> 
     ##teamcity[testIgnored name='<xsl:value-of select="@name" />' message='Test Ignored'] 
      </xsl:when> 
      <xsl:otherwise> 
     ##teamcity[testStarted name='<xsl:value-of select="@name" />'] 
      </xsl:otherwise> 
     </xsl:choose> 


     <xsl:if test="@result='failure'"> 
      ##teamcity[testFailed name='<xsl:value-of select="@name" />' message='<xsl:value-of select="child::node()/message"/>' details='<xsl:value-of select="normalize-space(child::node()/stack-trace)"/>'] 
     </xsl:if> 


     <xsl:if test="@result!='ignore' and @result!='skip'"> 
     ##teamcity[testFinished name='<xsl:value-of select="@name" />'] 
     </xsl:if> 

    </xsl:template> 

</xsl:stylesheet> 
3

यहाँ है कि मैं क्या

मैं परीक्षण रिपोर्ट में कैसे मर्ज कर सकते हैं के साथ आया है?

सबसे पहले आपको एक XML और HTML रिपोर्ट दोनों उत्पन्न करने के लिए mbunit प्राप्त करने की आवश्यकता होगी। कमांड लाइन तर्क यह

/rt:Xml /rt:Html /rnf:mbunit /rf:..\reports 

की तरह लग रही है कि यह एक निर्देशिका कहा जाता है रिपोर्ट में रिपोर्ट उत्पन्न और फ़ाइल mbunit.xml बुलाया जाएगा और mbunit.html

अगले हम कलाकृतियों के रूप में इन फ़ाइलों को जोड़ना चाहते हैं जाएगा निर्माण पर

build\reports\* => Reports 

अंतिम चरण का निर्माण

के लिए एक टैब के रूप में यह जोड़ने के लिए .BuildServer \ config \ मुख्य-config.xm लगता है teamcity बताने के लिए है एल और इस लाइन जोड़ने (विंडोज़ इस ग में है पर: \ दस्तावेज़ और सेटिंग्स \, लिनक्स पर यह/जड़ dir में था)

<report-tab title="Tests" basePath="Reports" startPage="mbunit.html" /> 

मैं कैसे प्रदर्शित कर सकते हैं "टेस्ट में विफल रहा है: 1 (1 नया), पारित: 3049 "निर्माण के लिए?

टीमसिटी टीमसिटी-info.xml नामक फ़ाइल की तलाश में है जहां आप प्रदर्शित होने के लिए संदेश चिपक सकते हैं। वास्तविक परीक्षण गणना वास्तव में केवल सादा पाठ है। मुझे लगता है कि आप सिर्फ एक आर्टिफैक्ट के रूप में फ़ाइल जोड़ सकते हैं लेकिन मुझे इसे बिल्ड के रूट डीआईआर में भी मिला है।

NAnt में आप MBUnit एक्सएमएल रिपोर्ट

<style style="includes\teamcity-info.xsl" in="reports\mbunit.xml" out="..\teamcity-info.xml" /> 

वास्तविक XSL इस तरह दिखता है पर एक XSLT करने के लिए इस आदेश का उपयोग करना चाहते हैं। (नोट: कि {और} XSL में आरक्षित हैं तो हम पैरामीटर का उपयोग करना)

<?xml version="1.0" encoding="ISO-8859-1"?> 

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:param name="cbl" select="'{'"/> 
<xsl:param name="cbr" select="'}'"/> 
<xsl:template match="/"> 
<xsl:for-each select="report-result/counter"> 

<build number="1.0.{concat($cbl,'build.number',$cbr)}"> 
    <xsl:if test="@failure-count &gt; 0"> 
     <statusInfo status="FAILURE">  
      <text action="append"> Tests failed: <xsl:value-of select="@failure-count"/>, passed: <xsl:value-of select="@success-count"/></text> 
     </statusInfo> 
    </xsl:if> 
    <xsl:if test="@failure-count = 0"> 
     <statusInfo status="SUCCESS"> 
      <text action="append"> Tests passed: <xsl:value-of select="@success-count"/></text> 
     </statusInfo> 
    </xsl:if> 

</build> 
</xsl:for-each> 

</xsl:template> 
</xsl:stylesheet> 

यह आपको एक फ़ाइल है कि इस

<build number="1.0.{build.number}"> 
    <statusInfo status="FAILURE"> 
     <text action="append">Tests failed: 16, passed: 88</text> 
    </statusInfo> 
</build>