1. 程式人生 > >轉換QTP對象庫xx.tsr文件為xx.xml文件以便git跟蹤

轉換QTP對象庫xx.tsr文件為xx.xml文件以便git跟蹤

qtp git uft

眾所周知,Git僅能跟蹤文本文件,而QTP所生成的對象庫文件xx.tsr是一種二進制文件,不可以被git所跟蹤。本文詳細介紹了利用git的hooks特性,來將xx.tsr文件轉換成xx.xml文件,以便跟蹤對象庫的版本歷史。


首先,git的hooks特性是指在特定事件發生之前或者之後執行特定腳本代碼的功能(從概念上類比,與監聽事件、觸發器等類似)。特定事件既是指git執行的特定事件,如commit,push,recieve等,以下是常見的git事件:

  • applypatch-msg

  • pre-applypatch

  • post-applypatch

  • pre-commit

  • prepare-commit-msg

  • commit-msg

  • post-commit

  • pre-rebase

  • post-checkout

  • post-merge

  • pre-receive

  • update

  • post-receive

  • post-update

  • pre-auto-gc

  • post-rewrite


在本文中,我們要用到的事件是 pre-commit和post-merge。其配置方法如下:

一)第一種方式:默認hooks目錄

每個git倉庫下都包含有.git/hooks目錄,裏面就是放置hooks(腳本)的地方,當git事件執行時,相應的hooks(腳本)就會自動執行。

註意:

git事件對應的hooks的腳本文件名"必須"與事件列表名一樣(默認.git/hooks下的事例都是以.sample結尾,使用時要去掉後綴),例如寫pre-commit事件的hooks時,文件名必須是pre-commit,而不是pre-commit.sample。

二)第二種方式:自定義hooks目錄

創建一個.gitconfig文件,裏面指定hooks目錄地址,然後使用.gitconfig的配置。例如:

  1. 在倉庫根目錄下創建.gitconfig文件,並包含如下內容:

[core]

hooksPath=./libs/hooks

2. 運行如下命令來引用.gitconfig

#git config --local include.path ../.gitconfig


為了方便使用,我已經在我的GitHub上面創建了Sample倉庫,大家可以clone下來直接使用。裏面根據第二種方式配置了兩個腳本:pre-commit和post-merge,用來實現commit前自動將xx.tsr轉換成xx.xml文件以便跟蹤,以及當pull下來並且merge後,再將xx.xml文件轉換成QTP可使用的xx.tsr文件。


Github地址:https://github.com/TaoismLEE/Sample.git

註意:

1. clone下來後,一定記得運行git config --local include.path ../.gitconfig來引用配置;

2. 初次將xx.tsr文件放於libs文件夾下。

轉換QTP對象庫xx.tsr文件為xx.xml文件以便git跟蹤