1. 程式人生 > 其它 >CheckBox Navigation(三)Checkbox tutorials

CheckBox Navigation(三)Checkbox tutorials

技術標籤:Checkbox Ubuntucheckboxubuntu

Checkbox

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

是提供程式的名稱。提供者使用 IQN 命名,它有助於跟蹤提供者的所有權。

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測試預期執行多長時間。此欄位目前僅提供資訊。