2010-11-22 4 views
0

Je suis en train de mettre en place une intégration continue. J'ai décidé d'implémenter l'opportunité d'exclure les tests de run. Je vois 3 façons de le rendre:QA. Exclusion des tests

  1. commentaire spécial dans la source de tests
  2. liste exclure Central
  3. liste Ne comptez pas dans la description de billet dans un trac

Pourriez-vous s'il vous plaît partager votre experince et indiquerai comment appliquer la vraie décision. Merci!

Répondre

0

Je ne recommanderais pas d'utiliser des commentaires dans la source de test. En supposant que vos tests sont sous contrôle de version, ils ne devraient pas changer à chaque fois que vous modifiez un paramètre de configuration comme celui-ci.

Il est difficile de donner une bonne recommandation sans connaître votre système de construction, mais s'il y a quelque chose comme une «configuration d'environnement» globale pour votre système d'assurance qualité, je vous recommande de le mettre là. Si vous êtes en mesure de spécifier les tests à exécuter dans un ticket de trac, puis d'automatiser l'exécution des tests corrects qui seraient awesom - je n'ai jamais essayé cela, donc je ne sais pas si c'est possible.

-1

J'ai décidé de partager les résultats. je serai heureux d'entendre des commentaires

#!/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

Toute information pour quelle langue, outil, plate-forme est-ce et dans quel contexte (environnement de dev)? –

+0

il y a la première ligne: #!/Bin/sh. Qu'est-ce qui n'est pas clair? – krvladislav