我正在建立持续集成。我已决定实施机会,以排除运行中的测试。我看到3种方式,使其:质量保证。不包括测试
- 特别评论测试的源
- 中央排除列表
- 排除在门票的描述列表中TRAC
可否请你分享你的遭遇,并指示如何应用真实的决定。谢谢!
我正在建立持续集成。我已决定实施机会,以排除运行中的测试。我看到3种方式,使其:质量保证。不包括测试
可否请你分享你的遭遇,并指示如何应用真实的决定。谢谢!
我不会推荐在测试源中使用注释。假设您的测试受版本控制,那么只要您更改像这样的配置设置,它们就不应该更改。
很难在不知道构建系统的情况下给出一个好的建议,但如果您的QA系统有像全局“环境配置”那样的东西,我会建议将它放在那里。如果你能够指定测试运行在trac票证中,然后自动运行正确的测试,这将是一种错觉 - 我从来没有尝试过,所以不知道这是否可能。
我决定分享结果。我会很高兴听到任何意见
#!/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
任何信息的语言,工具,平台是它和在哪个上下文(开发环境)? – 2010-12-08 15:20:44