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测试预期运行多长时间。此字段目前仅提供信息。