2010-11-22 10 views
0

Ich richte kontinuierliche Integration ein. Ich habe beschlossen, die Möglichkeit zu implementieren, Tests vom Lauf auszuschließen. Ich sehe drei Möglichkeiten, um es zu machen:QA. Ausschließen von Tests

  1. Sonder Kommentar in Quelle-Test
  2. Zentrale Ausschlussliste
  3. Ausschlussliste in der Beschreibung der Ticket in einem trac

Könnten Sie bitte Ihre experince teilen und zeigen wie man wahre entscheidung anwendet. Vielen Dank!

Antwort

0

Ich würde nicht empfehlen, Kommentare in der Testquelle zu verwenden. Vorausgesetzt, Ihre Tests unterliegen der Versionskontrolle, sollten sie sich nicht ändern, wenn Sie eine Konfigurationseinstellung wie diese ändern.

Es ist schwer, eine gute Empfehlung zu geben, ohne Ihr Build-System zu kennen, aber wenn es so etwas wie eine globale "Umgebungskonfiguration" für Ihr QA-System gibt, würde ich es empfehlen. Wenn Sie in der Lage sind, die Tests so zu spezifizieren, dass sie in einem Trac-Ticket ausgeführt werden, und dann die korrekten Tests automatisieren, die eine große Rolle spielen würden - das habe ich noch nie versucht und würde nicht wissen, ob dies möglich ist.

-1

Ich habe beschlossen, das Ergebnis zu teilen. Ich werde froh sein, irgendwelche Kommentare zu hören

#!/bin/sh 

USER=... 
PASSWD=... 

TRAC_URL=https://... 

# keywords which indicates block with list of excludable tests 
START_KW=excl 
END_KW=endexcl 

function get_active_tickets_numbers { 
# wget page with active tickets 
# cut number from paths like '/ticket/161', which is found in '<a title=View ticket href=/ticket/161>' 


    local user=$USER 
    local passwd=$PASSWD 
    # set max to big value or else there will be several pages 
    local active_tickets_url=$TRAC_URL/report/2?max=1000 

    # uniq : link to the same ticket repeats in columns 'Ticket' and 'Summary' so delete repeats 
    wget \ 
    --no-check-certificate --http-user=$user --http-password=$passwd -O \ 
    - $active_tickets_url \ 
    | perl -ne '/ticket\/(\d+)/; print "$1 "' \ 
    | uniq 
} 

function get_excl_list_of_ticket { 
# wget ticket page 
# cut blocks between $start_kw (keyword) and $end_kw that must be located in decription section 
# remove html tags 
# cut pathes by the rule: all allowable chars starting at the end of word 

    local ticket_num=$1 

    local user=$USER 
    local passwd=$PASSWD 
    local ticket_url=$TRAC_URL/ticket/$ticket_num 
    local start_kw=$START_KW 
    local end_kw=$END_KW 
    local legal_char='[a-zA-Z0-9\/_\-.]' 

    wget \ 
    --no-check-certificate --http-user=$user --http-password=$passwd -O \ 
    - $ticket_url \ 
    | perl -e \ 
    'undef $/; 
     $_ = <>; 
     while (/'$start_kw'(.*?)'$end_kw'/sg) { 
     $block = $1; 
     $block =~ s/<.*?>//sg; 
     while ($block =~ /('$legal_char'+)[ \n\t]/g) { 
      print "$1\n"; 
     } 
     }' 
} 

function get_excl_list_1 { 

    nums=`get_active_tickets_numbers` 

    for num in ${nums[@]}; do 
    get_excl_list_of_ticket $num 
    done 
} 

function get_excl_list { 

    get_excl_list_1 | uniq 
} 

get_excl_list 
+0

Alle Infos für welche Sprache, Werkzeug, Plattform ist es und in welchem ​​Kontext (Dev-Umgebung)? –

+0

gibt es die erste Zeile: #!/Bin/sh. Was ist unklar? – krvladislav

Verwandte Themen