CheckBox Navigation(三)Checkbox tutorials
技術標籤:Checkbox Ubuntucheckboxubuntu
CheckBox Navigation 3
Checkbox tutorials
Note
如果你計劃為Ubuntu核心系統開發測試,或者計劃打包你的測試,請參見為Ubuntu核心測試建立一個自定義checkbox應用程式。
1. Creating an empty provider
checkbox提供程式是包含如何執行測試的資訊的包。
要建立一個空提供程式,執行:
$ checkbox-cli startprovider --empty com.example:myprovider
Checkbox -cli
是執行Checkbox的命令,——empty
通知checkbox您想從頭開始。
com.example:myprovider
checkbox作業是描述如何執行測試的任務。
這些作業在提供程式的“units”目錄中的***.pxu
檔案中定義。
我們剛剛建立的provider沒有這個目錄,讓我們建立它:
$ cd com.example\:myprovider
$ mkdir units
2. Adding a simple job to a provide
作業大致遵循RFC822語法。
即大多數內容遵循關鍵:價值模式。
讓我們新增一個執行命令的簡單作業。
在提供程式的units
目錄中開啟任何.pxu
檔案(如果沒有,就建立一個,如units.pxu
並增加以下內容:
id: my-first-job
flags: simple
command: mycommand
id
用於標識目的,flags
可以啟用額外的特性。
在simple
的情況下,它允許我們不指定所有典型的欄位——checkbox將為我們推斷一些值。
command
要執行的命令。這是mycommand
為了讓作業在checkbox中可見,它們必須包含在某些測試計劃中。
讓我們在同一個.pxu
檔案中新增一個測試計劃定義。
unit: test plan
id: first-tp
name: My first test plan
include: my-first-job
Warning
在.pxu
檔案中被分隔的實體必須用至少一個空行分隔。
3. Running jobs from a newly created provider
為了讓checkbox看到提供程式,我們必須安裝它。執行:
$ sudo ./manage.py install
現在我們準備好啟動checkbox了!使用以下命令啟動命令列版本:
$ checkbox-cli
請按照螢幕上的說明操作。測試將(可能)失敗,因為您的系統中缺少mycommand
。讓我們改變工作的定義,做一些有意義的事情。開啟units.pxu
,並改變線路:
command: mycommand
# 或
command: [ `df -B 1G --output=avail $HOME |tail -n1` -gt 10 ]
Note
這個命令檢查
$HOME
中是否至少有10GB
的可用空間
這個更改目前還不能使用,因為我們的系統中仍然安裝了一箇舊版本的提供者。讓我們刪除以前的版本,並安裝新的。
$ sudo rm -rf /usr/local/lib/plainbox-providers-1/com.example\:myprovider/
$ sudo ./manage.py install
這個sudo操作(希望如此)對您來說是危險的。請參閱下一部分,瞭解如何避免這種情況。
4. Developing provider without constantly reinstalling it
你可以讓checkbox直接從你要修改的地方讀取它,而不是每次你都要重新安裝它。
$ ./manage.py develop
因為現在checkbox可能會看到同一提供程式的兩個例項,所以請確保刪除前一個例項。
Note
./manage.py
develop不需要sudo,因為它會在使用者家裡引用所有的引用。
5. Improving job definition
當您執行checkbox時,您會看到作業顯示為“my-first job”,這是作業的id,這對人類不是很友好。這是因為這個simple
的標誌。讓我們改進一下我們的工作定義。開啟units.pxu
並將工作定義替換為:
id: my-first-job
_summary: 10GB available in $HOME
_description:
this test checks if there's at least 10gb of free space in user's home
directory
plugin: shell
estimated_duration: 0.01
command: [ `df -B 1G --output=avail $HOME |tail -n1` -gt 10 ]
New stuff:
_summary: 10GB available in $HOME
摘要顯示在選擇作業的checkbox螢幕中。這是一種對人類友好的工作識別。它應該很短(50 - 70個字元),因為它是在一行中列印的。_
表示在開頭表示該欄位是可翻譯的。
_purpose:
this test checks if there's at least 10gb of free space in user's home
directory
Purpose ,顧名思義,應該描述測試的目的。
plugin: shell
外掛告訴checkbox什麼樣的工作是它。shell
意味著它是一個自動測試,執行命令並使用它的返回程式碼來確定作業的結果。
estimated_duration: 0.01
告知checkbox測試預期執行多長時間。此欄位目前僅提供資訊。