2010-11-22 77 views
0

我正在建立持续集成。我已决定实施机会,以排除运行中的测试。我看到3种方式,使其:质量保证。不包括测试

  1. 特别评论测试的源
  2. 中央排除列表
  3. 排除在门票的描述列表中TRAC

可否请你分享你的遭遇,并指示如何应用真实的决定。谢谢!

回答

0

我不会推荐在测试源中使用注释。假设您的测试受版本控制,那么只要您更改像这样的配置设置,它们就不应该更改。

很难在不知道构建系统的情况下给出一个好的建议,但如果您的QA系统有像全局“环境配置”那样的东西,我会建议将它放在那里。如果你能够指定测试运行在trac票证中,然后自动运行正确的测试,这将是一种错觉 - 我从来没有尝试过,所以不知道这是否可能。

-1

我决定分享结果。我会很高兴听到任何意见

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

任何信息的语言,工具,平台是它和在哪个上下文(开发环境)? – 2010-12-08 15:20:44