集成SVN源码管理和Mantis缺陷跟踪

发表于:2015-4-01 11:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ㄓㄤㄑㄧㄤ    来源:51Testing软件测试网采编

  完成以上工作后使用过程中还存在一些问题
  1、缺陷号没有强制输入,如果没有输入缺陷号,仍然可以提交
  2、输入了错误的缺陷号,系统仍然提交,但是缺陷系统中没有相关的内容
  解决这个问题,需要在提交前,对缺陷信息进行校验
  一、创建 pre-commit.bat 校验缺陷号
REM pre-commit.bat hook for MantisBT integration
set REPOS=%1
set TXN=%2
SET DETAILS_FILE=D:\svn\no1\log\svnfile
SET LOG_FILE=D:\svn\no1\log\svnfile_Log
set APR_ICONV_PATH=D:\EasyPHP\Subversion\iconv
set PHPRC=D:\EasyPHP\apache
set path=%path%;D:\EasyPHP\php5;D:\EasyPHP\Subversion\bin;
rem 把注释信息写入到 DETAILS_FILE
svnlook log "%REPOS%" -t "%TXN%"  >>%DETAILS_FILE%
rem 执行checkin_svn_pre_commit.php 进行校验缺陷单号 是否在缺陷系统中存在,如果不存在,返回输出信息到 log_file中
php.exe D:\EasyPHP\www\mantis\core\checkin_svn_pre_commit.php <%DETAILS_FILE%>%LOG_FILE%
rem 校验log_file中是否有内容,如果有内容,转入到出错提示
FOR /F "tokens=1,2* delims= " %%i in (%LOG_FILE%) do goto err
del %DETAILS_FILE%
del %LOG_FILE%
exit 0
:err
echo 缺陷单不存在,请正确填写缺陷单号,提交终止! 1>&2
del %DETAILS_FILE%
del %LOG_FILE%
exit 1
  二、创建checkin_svn_pre_commit.php 到数据库中校验缺陷单信息
  拷贝 checkin.php 内容 新建checkin_svn_pre_commit.php 文件
删除 # add note to each bug only once 之后的到 exit( 0 ); 内容,修改为以下内容
# add note to each bug only once
$t_issues = array_unique( $t_issues );
$t_fixed_issues = array_unique( $t_fixed_issues );
$t_issues_svn = array_unique( $t_issues );
# 编码转换.
$t_comment = mb_convert_encoding($t_comment, "utf-8","GB2312");
# 判断数据库中的 缺陷单号是否存在
foreach ( $t_issues_svn as $t_issue_id ) {
$query = "SELECT *
FROM mantis_bug_table
WHERE bug_text_id='$t_issue_id'";
$result = db_query( $query );
$issues_raw_count = db_num_rows( $result );
if ($issues_raw_count  == 0){
echo "$t_issue_id";
}
}
exit( 0 );
  至此大部分的工作都已经完成,但是还存在一些问题
  1 新增等操作的时候,有时候提交没有出现收入 issue 提示框,但是此时仍然需要输入缺陷号
  测试可以要求,在提交注释的时候,按照 issue 1 形式手工写入缺陷单号,即可提交
  几点说明:
  1、
  SET DETAILS_FILE=E:\svnrepo\log\svnfile_%REV%
  指的是svn代码库的地址,在这个地址下 建立一个log的目录,根据自动生成文件
  2、
  $g_source_control_account = 'SVN';
  需要在mantis建立一个 svn的 用户,这个用户要有添加注释的权利
  3、php.exe E:\www\mantis\core\checkin.php <%DETAILS_FILE% >%LOG_FILE%
  在使用easyphp的时候,注意php.ini 默认使用的是windows目录下的,
  rem set PHPRC=D:\EasyPHP\apache 默认会使用windows 目录下的 php.ini 修改后,读取 easyphp\apach 目录下的配置文件
  不然总是mysql 连接错误
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号