如何将Bugfree整合到Testlink呢?
尽管网上有一堆教程,但根据Testlink的版本不一样,具体的配置也不同。所以,解决问题的关键是,我们要花一点点时间,去了解Testlink开放的Bug管理系统的接口。
关注的文件
你要关注两个目录下的文件:
1.lib\bugtracking\
2.cfg\
先说目录1,它是放置接口文件的目录。我们要专门针对Bugfree,写一个bugfreeInterface类(int_bugfree.php),继承于Testlink的bugtrackingInterface类(int_bugtracking.php)。(具体内容可参考附件)
将写好的int_bugfree.php置于lib\bugtracking\之后,还需要修改int_bugtracking.php的内容。打开int_bugtracking.php,你或许能找到名为“BUGZILLA”、“JIRA”等bugtracking interfaces列表,在其中加入"BUGFREE"即可。
如:
// Add new bugtracking interfaces here
$btslist = array('BUGFREE','BUGZILLA','MANTIS','JIRA','TRACKPLUS','FOGBUGZ');
另外,修改
$g_bugInterfaceOn = true;
$g_bugInterface ='BUGFREE';
Ok,接下来就要在Cfg目录中添加配置文件bugfree.cfg.php(具体内容可参考附件)。其中定义了链接地址等,如:
define('BUG_TRACK_HREF', http://ws-tsstapach-01/bugfree/Bug.php?BugID=);
最后一步,就是tesklink根目录下的config.inc.php文件。
将$g_interface_bugs ='NO';设置为‘BUGFREE’
ok,配置就是这么多,也跟网上的诸多教程吻合。就这么三步:
1.修改lib/bugtracking/int_bugtracking.php
2.增加文件lib/bugtracking/int_bugfree.php,cfg/bugfree.cfg.php
3.修改config.inc.php
问题札记
Q1:当然,你可能会悲剧地发现,Testlink的首页出现“Fatal Error:call to a member function connect() on a non-object in ……lib\functions\configCheck.php on line 350”
A:不要慌,它报的是configCheck的checkForBTSConnection方法,configCheck文件本身不涉及使用,你可以直接将checkForBTSConnection中的内容注释掉。
Q2:如果你在Exectue中已经看到小虫图标,但是点击后出现“……lib\execute\bugAdd.php on line 42”,啥也不说了,直接定位到bugAdd.php中的$g_bugInterface->getEnterBugURL()语句。
A:查查看,是不是没有创建$g_bugInterface?是的,你需要$g_bugInterface = new bugtrackingInterface();
Q3:如果你点击小虫图标,却没有定位到正确的链接
A:那得查查int_bugtracking.php的buildViewBugLink方法。或许是调用function buildViewBugURL($id)出了问题。
在解决问题的过程中,你可以直接“print 变量名”去调试。
HO~虽然从没有接触过php,但它的语法还是很容易理解的,不要依赖网上的教程,请相信自己对程序的判断。
--------------
不知为啥,CSDN发布资源有问题,虽然提示上传成功,但在[我的资源]列表中看不到。无奈,需要脚本的请Mail:wuziteng2006@163.com
[后记] 已上传到:http://download.csdn.net/detail/wuziteng2006/3271563