TA的每日心情 | 慵懒 7 小时前 |
---|
签到天数: 3651 天 连续签到: 103 天 [LV.Master]测试大本营
|
6#
楼主 |
发表于 2011-10-29 16:58:32
|
只看该作者
(五)在config_inc.php中自定义配置
上面的都是分析,下面开始实践了,分两个部分,第一部分是通过修改config_inc.php配置文件,根据实际情况自定义需要的功能;第二部分是通过编写代码实现需要的功能。
先说一下我们的项目,项目的功能模块比较多,分批进行发布,随着开发进度,逐渐增加需要测试的模块,所以在mantis中建立一个主项目,主项目下根据需要建立各个子项目。
主项目仅仅表示下面的子项目属于此项目,并没有建立分类;版本在主项目定义,子项目不建立相关的子版本,统一使用主项目版本。
公司无法上广域网,而且没有内部邮箱,所以邮件相关的部分,我也都给清理了,需要邮件功能的,自己去查找相关配置。
以下内容没有特殊说明,都在config_inc.php中定义。
1.国际化
在config_inc.php中,如果通过install.php安装的,默认就有数据库相关的信息。
比如我的就是:
$g_hostname = 'localhost';
$g_db_type = 'mysql';
$g_database_name = 'mantis';
$g_db_username = 'mantis';
$g_db_password = 'mantis';
接着把mantis的默认语言设置为中文:
$g_default_language = 'chinese_simplified';
$g_default_language是很关键的参数变量,看源码就能清楚,在mantis中显示字段内容的时候,都是用lang_get()函数,lang_get函数会根据你设定的默认语言,找lang目录下对应的语言文件,比如$g_default_language 设定为'chinese_simplified'后,那么只要遇到lang_get(),就找lang/strings_chinese_simplified.txt文件中对应的变量,界面就相应显示为相应中文。
2.新建角色
不知道为什么,mantis缺省没有测试人员角色,只有报告员角色,但是报告员角色的权限比开发员低,也就是说,如果测试员设定为报告员角色,开发员因为权限更高,可以处理测试员的缺陷状态,比如直接关闭缺陷,我认为既然mantis主要给测试人员管理缺陷用的,那么测试人员的角色权限就应该在开发人员之上。
根据以上说明,创建新的测试人员角色。还有给匿名用户新建一个匿名用户权限。
在config_inc.php中,加入
$g_access_levels_enum_string = '5:匿名用户,10:复查员,25:报告员,40:修改员,55:开发人员,60:测试人员,70:经理,90:管理员';
在lang目录的strings_chinese_simplified.txt中,查找并修改
$s_access_levels_enum_string = '5:匿名用户,10:复查员,25:报告员,40:修改员,55:开发人员,60:测试人员,70:经理,90:管理员';
看清楚了,一个是$g_,一个是$s_,变量是不一样的。
在根目录新建custom_constants_inc.php文件,里面写入:
<?php
define( 'ANONYMOUS', 5 );
define( 'TESTER', 60 );
?>
custom_constants_inc.php其实不设定也不影响使用,但是如果需要修改角色相关的代码,最好按照mantis的习惯使用定义的常量,而不是常数。
分析一下,其实在config_defaults_inc.php中,存在系统预设的$g_access_levels_enum_string变量,所以我们在config_inc.php中用自定义的$g_access_levels_enum_string变量替换系统预设值。这样在使用过程中,就有了新的匿名用户角色和测试人员角色。
但是修改后,其实只相当于添加了5和60的角色,但是对应的默认语言(这里是中文)角色名称在lang/strings_chinese_simplified.txt的$s_access_levels_enum_string变量中没有定义,所以在使用过程中,就会出现@5@这样的角色。需要在相应的lang目录国际化文件中,对新添加的内容也定义相应的翻译。所有在程序中,遇到类似@60@这样的内容,都是因为变量没有定义相应的国际化语言名称。
另外,mantis设计的时候,编号不是随意的,高数值的很多情况下包含低数值的权限。比如10有提交缺陷的权限,那么10以上的其他角色,同样具备此权限,所以设计的时候要小心,一定要按照权限的高低进行排序设置。
3.严重性
Mantis预设的严重性项条目很多,感觉没有必要,按照我们公司的实际需要,定义四个就足够了。
在config_inc.php中定义:
$g_severity_enum_string = '30:建议,40:轻微缺陷,50:一般缺陷,60:严重缺陷';
在lang/strings_chinese_simplified.txt中,修改:
$s_severity_enum_string = '30:建议,40:轻微缺陷,50:一般缺陷,60:严重缺陷';
原有系统,50是默认的严重性,如果需要修改,可以在config_inc.php中定义:
$g_default_bug_severity = 40;
这样默认的严重性就是轻微缺陷。
4.缺陷发生频率
Mantis中默认的缺陷发生频率是70-REPRODUCIBILITY_HAVENOTTRIED(没有试验),我们把他默认设置为10-总是出现。
$g_default_bug_reproducibility = REPRODUCIBILITY_ALWAYS;
其中REPRODUCIBILITY_ALWAYS是在core/constant_inc.php中定义的常量,其实就是常数10。
5.缺陷状态
和上面的处理方法类似,在config_inc.php中定义:
$g_ status_enum_string = '10:新缺陷,30:暂不修改,40:不是缺陷,50:再次出现,80:已经修改,90:关闭';
在lang/strings_chinese_simplified.txt中修改:
$s_status_enum_string = '10:新缺陷,30:暂不修改,40:不是缺陷,50:再次出现,80:已经修改,90:关闭';
但是这么修改后,出现了一个问题,缺陷列表没有了缺陷状态对应的颜色,因为在config_defaults_inc.php文件内$g_status_colors数组中定义的键值和自定义的键值不同。
在config_inc.php中重新定义颜色键值:
$g_status_colors = array( '新缺陷' => '#fcbdbd', '暂不修改' => '#ffcd85', '不是缺陷' => '#fff494', '再次出现' => '#c2dfff', '已经修改' => '#d2f5b0', '关闭' => '#c9ccc4');
6.工作流
缺陷状态定义完毕后,定义工作流,可以使用管理员登陆,在管理->配置管理中定义相关的自定义字段、用户权限、工作流等内容。
其实在管理->配置管理->配置报告中,显示的就是已经定义的内容。愿意的话,你也可以直接在config_inc.php中定义,效果是相同的。
比如直接在config_inc.php中定义工作流:
$g_status_enum_workflow = array (
10 => '80:已经修改,30:暂不修改,40:不是缺陷',
30 => '50:再次出现',
40 => '90:关闭,50:再次出现',
50 => '80:已经修改,30:暂不修改,40:不是缺陷',
80 => '90:关闭,50:再次出现',
90 => '50:再次出现',
);
定义角色对缺陷状态的处理权限:
$g_set_status_threshold = array (30 => 55,40 => 55,50 => 60,80 => 55,90 => 60,);
还有很多,不详细说了,感兴趣的自己去看吧,反正就是需要,mantis后台配置的内容也可以在config_inc.php中直接定义。
7.其他
下面是其他一些在config_inc.php中可以定义的变量。
其实大家未必需要设置这么多的内容,我是因为实验各种参数,很多有用的就直接留下来了。
$g_enable_email_notification = OFF; //关闭邮件功能
putenv("TZ=Asia/Shanghai"); //定义中国时区
$g_complete_date_format='Y-m-d H:i:s'; //日期格式
$g_delete_bug_threshold = MANAGER; // 删除缺陷的角色权限
$g_max_file_size = 5000000; //最大的附件容量,这个同时需要在php.ini中设置
$g_view_summary_threshold = VIEWER; //最低允许查看统计角色
$g_show_realname = ON; //在页面显示用户的姓名而不是帐号
$g_preview_attachments_inline_max_size = 2000000; //支持预览用图片格式最大附件尺寸
$g_allow_anonymous_login = ON; //是否支持匿名用户
$g_anonymous_account = 'anonymous'; //匿名用户的帐号,匿名登录后,为此帐号的权限
$g_show_timer = ON; //在页面最下方,显示页面的载入时间
$g_default_home_page = 'view_all_bug_page.php'; //登录后默认进入查看问题页面
$g_default_category_for_moves = 12; //这里是为了避免一个问题,移动缺陷的时候,默认的分类id设置为预设的全局分类General,但是我当时配置项目的时候,把此General分类给删除了,所以移动缺陷就会因为找不到分类而出现错误。这里我挑了一个在mantis_category_table表中存在的id。如果id=1的全局General分类存在,就不需要定义此项。
$g_enable_profiles = OFF; //关闭平台配置,如果此项为on,那么提交缺陷的时候,就有一个平台配置供你选择
$g_allow_signup = OFF; //关闭注册帐号功能,需要邮箱才能注册,我们没有邮箱,就关闭了此项
$g_allow_file_upload = ON; //下面的三项都是上传附件相关的,你可以不把附件保存在数据库中,而是保存在本地磁盘目录上
$g_file_upload_method = DISK;
$g_absolute_path_default_upload_folder = 'C://apache//www//mantis//upload//';
$g_show_project_menu_bar = ON; //在页面上方,显示项目直达链接
$g_time_tracking_enabled = ON; //各项业务的处理时间,这个需要自己填写的,最后可以统计比如你处理缺陷用了多少时间等。
$g_wiki_enable = ON; //下面的都是wiki相关的,我架设了dokuwiki
$g_wiki_engine = 'dokuwiki';
$g_wiki_root_namespace = 'mantis';
$g_wiki_engine_url = $t_protocol . '://' . $t_host . '/%wiki_engine%/'; |
|