前兩天有個朋友寫信給我問一個testlink和bugzilla集成的問題,從他信里面的描述得出,他已經(jīng)成功把這兩個系統(tǒng)集成好了,但是有一些功能用不了,例如不能顯示bugzilla里面的id、狀態(tài)、標題信息等。其實原因是testlink的作者只實現(xiàn)了bugzilla集成的部分接口,其他的接口是要我們自己來寫的。大家可以瀏覽一下testlink安裝目錄下的/lib/bugtracking,里面有好些文件,其中文件int_bugtracking.php是testlink和其他所有bug tracking系統(tǒng)(bugzilla, jira, mantis等)做集成的基類。還有一個文件叫int_bugzilla.php,這個文件是testlink和bugzilla集成的代碼,里面定義了一個類:bugzillaInterface,它是bugtrackingInterface的子類,并且在類bugzillaInterface里面重寫了一部分方法,這也是為什么如果我們自己不修改代碼的話,只能用到部分功能(例如只能連接,但卻不能顯示相關(guān)的信息)。
假如說,現(xiàn)在想在testlink關(guān)聯(lián)bugzilla的一個bug之前,驗證一下bug id是否存在,要在int_bugzilla.php里面重寫checkBugID_existence方法。
$query = "SELECT bug_id FROM {$this->dbSchema}.bugs WHERE bug_id='" . $id."'";
$query_results = $this->dbConnection->exec_query($query);
if ($query_results && ($this->dbConnection->num_rows($query_results) == 1))
{
return true;
}
return false;
如果要自己補充這個int_bugzilla.php的時候,需要一點php的知識,并且對bugzilla數(shù)據(jù)庫有所了解,以前公司的同事告訴我用php的一個神器,vardump。你懂的。