Χρησιμοποιώντας MBUnit στην TeamCity

ψήφοι
13

Είμαι κατάρτιση ενός σχεδίου Nant σε linux με το διακομιστή Συνεχής Ολοκλήρωσης TeamCity. Έχω ήταν σε θέση να δημιουργήσει μια έκθεση δοκιμής από τη λειτουργία Nant σε μονο μέσω μιας γραμμής εντολών Runner, αλλά δεν έχουν τις δυνατότητες χρήσης της έκθεσης σαν Nant Runner. Είμαι, επίσης, τη χρήση MBUnit για το πλαίσιο ελέγχου.

Πώς μπορώ να συγχωνεύσει στην έκθεση δοκιμής και να εμφανίσει «Δοκιμές απέτυχε: 1 (1 νέα), πέρασε: 3049» για την κατασκευή;

Ενημέρωση: ρίξτε μια ματιά στο MBUnitTask του ένα έργο Nant που χρησιμοποιεί στέλνει μηνύματα που TeamCity αναμένει από NUnit έτσι ώστε να σας επιτρέπει να χρησιμοποιείτε όλες τις λειτουργίες TeamCity για δοκιμές.

MBUnitTask

Ενημέρωση: Γκάλιο έχει καλύτερη υποστήριξη έτσι απλά πρέπει να αναφέρετε τα Γκάλιο MBUnit 3.5 dlls αντί των MBUnit 3.5 DLLs και μεταβείτε στην Γκάλιο δρομέα για να την κάνουμε να λειτουργήσει.

Δημοσιεύθηκε 06/08/2008 στις 08:41
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
6

Gallio έχει τώρα μια επέκταση στα μηνύματα υπηρεσίας έξοδο TeamCity. Απλά χρησιμοποιήστε το παρεχόμενο Gallio.NAntTasks.dll και θα επιτρέψει την επέκταση TeamCity. (αυτό δεν θα είναι απαραίτητο στην επόμενη έκδοση )

Απαντήθηκε 19/05/2009 στις 00:07
πηγή χρήστη

ψήφοι
4

TeamCity παρακολουθεί την έξοδο γραμμή εντολών από την κατασκευή. Μπορείτε να αφήσετε να γνωρίζουν πως οι εξετάσεις σας θα εισάγοντας ορισμένες δείκτες σε αυτή την παραγωγή Δείτε http://www.jetbrains.net/confluence/display/TCD3/Build+Script+Interaction+with+TeamCity . Για παράδειγμα

##teamcity[testSuiteStarted name='Test1']

θα αφήσει TeamCity γνωρίζουν ότι μια σειρά δοκιμών ξεκίνησε. Με MbUnit δεν μπορείτε εξόδου αυτοί οι δείκτες, ενώ οι δοκιμές σε λειτουργία, αλλά μπορείτε να μετατρέψει το αρχείο XML που εξάγει. Εδώ είναι η 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>
Απαντήθηκε 07/08/2008 στις 00:49
πηγή χρήστη

ψήφοι
3

Εδώ είναι αυτό που ήρθε με

Πώς μπορώ να συγχωνεύσει στην έκθεση δοκιμής;

Πρώτα θα πρέπει να πάρετε mbunit να δημιουργήσει τόσο ένα XML και HTML έκθεση. Τα επιχειρήματα της γραμμής εντολών μοιάζει με αυτό

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

αυτό θα δημιουργήσει τις εκθέσεις σε ένα dir που ονομάζεται εκθέσεις και το αρχείο θα ονομάζεται mbunit.xml και mbunit.html

δίπλα θέλουμε να προσθέσετε αυτά τα αρχεία και αντικείμενα σχετικά με τη συσσώρευση

build\reports\* => Reports

το τελευταίο βήμα είναι να πει teamcity να το προσθέσετε ως μια καρτέλα για την κατασκευή

βρείτε το .BuildServer \ config \ κύρια-config.xml και προσθέστε αυτή τη γραμμή (για τα παράθυρα είναι στο C: \ Documents and Settings \, σε linux ήταν στο / root dir)

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

Πώς μπορώ να εμφανίσει «Δοκιμές απέτυχε: 1 (1 νέα), πέρασε: 3049» για την κατασκευή;

TeamCity ψάχνει για ένα αρχείο που ονομάζεται teamcity-info.xml όπου μπορείτε να κολλήσετε μηνύματα να εμφανίζονται. Η πραγματική μέτρηση της δοκιμής είναι στην πραγματικότητα μόνο απλό κείμενο. Νομίζω ότι μπορείτε να προσθέσετε μόνο το αρχείο ως τεχνούργημα, αλλά έχω επίσης πήρε στη ρίζα dir της κατασκευής.

στο Nant θα θελήσετε να χρησιμοποιήσετε αυτήν την εντολή για να κάνετε μια XSLT σχετικά με την έκθεση MBUnit XML

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

η πραγματική xsl μοιάζει με αυτό. (Σημείωση: ότι η {και} είναι δεσμευμένα σε XSL έτσι πρέπει να χρησιμοποιήσετε params)

<?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>
Απαντήθηκε 27/08/2008 στις 15:14
πηγή χρήστη

ψήφοι
-1

TeamCity Sidebar Gadget για τα Windows Vista, Windows 7 http://teamcity-gadget.com

Απαντήθηκε 11/02/2010 στις 18:21
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more