一位朱雀魅力与捆绑测试选手
bundletester的Python项目详细描述
#bundletester
一个基于juju部署程序的测试运行程序,用于bundle和charms。
每个包都由
个字符组成,每个字符都应该有从单元测试到集成测试的测试。包本身将有集成测试。从时间上来说,这些测试应该从最便宜的运行到最昂贵的运行,并尽快失败。理论上,如果测试在charms中失败,那么bundle就不能
函数。因此,bundletester将提取所有的字符,并查找它可以在运行自己的集成测试之前找到并运行的任何
测试。
此测试运行程序使用以下模式。捆绑包有一个url。runner可以直接从bundle checkout中运行,也可以拉取bundle url所引用的分支。从那里,它将尝试从项目根目录中查找"tests"
目录。使用下面描述的规则,它将找到,并在该目录中执行每个测试并生成报告。
这还包括一个bundlewatcher脚本,它可以用作jenkins脚本
触发器。
r/>
使用特定的bundle或charm目录:
passing-l/--日志级调试将进一步了解bundletester正在执行的步骤。
-t cs:trusty/wordpress
`-t`选项接受多种url类型:
启动pad
-t lp:~charmers/charms/precise/ghost/trunk
-t launchpad:~charmers/charms/precise/ghost/trunk
-t https://launchpad.net/~charmers/charms/precise/ghost/trunk
捆绑合并建议
-t-lp:~davidpbbritton/charms/precise/apache2/avave regen cert/+merge/221102
<
\github
-t-gh:charms/apache2
-t-github:charms/apache2
-t-github:charms/apache2
/apache2
-t-https-https:charms/apache2
-t-github:charms/apache2
>-t-t-t-github/apache2
/apache2
-t://github.com/charMS/Apache2@52e73d
-t bb:battlemidget/juju juju apache gunicorn-jujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujuju>
添加"@revision'到任何bitbucket url来测试特定版本
-t bb:battlemidget/jujuju apache gunicorn django.git@daff5d9
此文件中的所有值(甚至文件本身)都是可选的。未提供时,将使用默认值。
se
virtualenv:true
virtualenv_python:python3
测试:"[0-9]*"
排除:
-`charm name`
源:
-ppa:ubuntu lxc/lxd stable
包:
-lxd
python_包:
-bzr
-jujuju deployer
-amulet
-请求
要求:
-测试要求.txt
-要求.txt
生成文件:
-lint
-测试
设置:`filename`
删除:`filename`
bundle部署:false
部署超时:2700
在模型重置中:机器终止和应用程序移除。总等待时间可以是这个值的2倍。如果"reset"的值不是"true"(默认值:180),则此选项无效。
**virtualenv**:创建并激活运行所有测试的virtualenv(默认值:false)。
**virtualenv_python**:创建
virtualenv的python版本(如果"virtualenv"为"true")。示例:python,python2.7,
python3.5(默认值:python)。
**测试**:将"tests/"目录中的可执行文件视为测试的全局模式(默认值:"\*")。只执行与此模式匹配的文件。
**排除**:应跳过测试的魅力名称列表。如果对包执行,则很有用。
**sources**:在安装包之前要添加的apt包源列表。
**packages**:在运行测试之前要与apt一起安装的包列表。
**python_packages**:在运行测试之前要与"pip install-u"一起安装的python包列表。如果"virtualenv"为"true",则包将安装在virtualenv中。
**requirements**:pip需求文件名列表(相对于
charm或bundle root dir),它将
传递给"pip install-r"。如果"virtualenv"为true,则包将
安装在virtualenv中,否则它们将安装在
系统级别。(默认值:[])
**makefile**:要执行的make目标列表(默认值:[lint,test])。
**setup**:要在每次测试之前运行的"tests/"目录中的脚本的可选名称。
**teardown**:要在每次测试之后运行的"tests/"目录中的脚本的可选名称。
**bundle\u deploy**:仅在测试bundle时适用e.可接受的值为"true"、"false"或文件名。如果'true'(默认值),则在运行任何测试之前,juju deployer将部署包。如果"false",则将跳过部署步骤。如果给定了文件名,它应该是"tests/"目录中的可执行文件(可能是amulet脚本)。文件将作为部署步骤执行。如果要部署捆绑包,但需要先修改它,则会很有用。请注意,如果"bundle\u deploy"文件名与"tests"glob模式匹配,则将执行两次-在部署步骤中执行一次,作为测试执行一次。要防止这种情况,请使用与"bundle\u deploy"文件名不匹配的"tests"glob模式。
**deployment\u timeout**:初始bundle
deploy允许的最长时间(以秒为单位)(在运行任何测试之前)。如果"bundle_deploy"
的值不是"true"(默认值:2700),则此选项不起作用。
这些测试文件中的每个
都可以选择具有相同名称但扩展名为`.yaml`
的控制文件。如果存在,此文件的布局与tests.yaml类似。
如果bundle不是
指定的<;bundle根>;/bundle.yaml将默认使用。
设置:可选要在此测试之前运行的脚本。这是在
tests.yaml设置(如果存在)之后调用的。
teardown:要在此测试之后运行的可选脚本。这在
测试之前调用。yaml teardown(如果存在)。
如果"virtualenv"为true,则每个测试都将在激活该环境的情况下执行。
每个测试都将捕获其stdout和stderr。
非零返回表示失败。
此字符串将至少包含以下结构(可以使用其他键):
[{test result},…]
>每个测试结果是一个dict,其中至少包含:
{test':测试文件,结果:exit_code,
'exit':'返回exit code的脚本名',
"returncode":进程的exitcode,
"duration":以秒为单位的timedelta}
"exit"将不包括,如果结果成功(0)
一个基于juju部署程序的测试运行程序,用于bundle和charms。
每个包都由
个字符组成,每个字符都应该有从单元测试到集成测试的测试。包本身将有集成测试。从时间上来说,这些测试应该从最便宜的运行到最昂贵的运行,并尽快失败。理论上,如果测试在charms中失败,那么bundle就不能
函数。因此,bundletester将提取所有的字符,并查找它可以在运行自己的集成测试之前找到并运行的任何
测试。
此测试运行程序使用以下模式。捆绑包有一个url。runner可以直接从bundle checkout中运行,也可以拉取bundle url所引用的分支。从那里,它将尝试从项目根目录中查找"tests"
目录。使用下面描述的规则,它将找到,并在该目录中执行每个测试并生成报告。
这还包括一个bundlewatcher脚本,它可以用作jenkins脚本
触发器。
r/>
使用特定的bundle或charm目录:
passing-l/--日志级调试将进一步了解bundletester正在执行的步骤。
-t cs:trusty/wordpress
`-t`选项接受多种url类型:
启动pad
-t lp:~charmers/charms/precise/ghost/trunk
-t launchpad:~charmers/charms/precise/ghost/trunk
-t https://launchpad.net/~charmers/charms/precise/ghost/trunk
捆绑合并建议
-t-lp:~davidpbbritton/charms/precise/apache2/avave regen cert/+merge/221102
<
\github
-t-gh:charms/apache2
-t-github:charms/apache2
-t-github:charms/apache2
/apache2
-t-https-https:charms/apache2
-t-github:charms/apache2
>-t-t-t-github/apache2
/apache2
-t://github.com/charMS/Apache2@52e73d
-t bb:battlemidget/juju juju apache gunicorn-jujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujujuju>
添加"@revision'到任何bitbucket url来测试特定版本
-t bb:battlemidget/jujuju apache gunicorn django.git@daff5d9
此文件中的所有值(甚至文件本身)都是可选的。未提供时,将使用默认值。
se
virtualenv:true
virtualenv_python:python3
测试:"[0-9]*"
排除:
-`charm name`
源:
-ppa:ubuntu lxc/lxd stable
包:
-lxd
python_包:
-bzr
-jujuju deployer
-amulet
-请求
要求:
-测试要求.txt
-要求.txt
生成文件:
-lint
-测试
设置:`filename`
删除:`filename`
bundle部署:false
部署超时:2700
在模型重置中:机器终止和应用程序移除。总等待时间可以是这个值的2倍。如果"reset"的值不是"true"(默认值:180),则此选项无效。
**virtualenv**:创建并激活运行所有测试的virtualenv(默认值:false)。
**virtualenv_python**:创建
virtualenv的python版本(如果"virtualenv"为"true")。示例:python,python2.7,
python3.5(默认值:python)。
**测试**:将"tests/"目录中的可执行文件视为测试的全局模式(默认值:"\*")。只执行与此模式匹配的文件。
**排除**:应跳过测试的魅力名称列表。如果对包执行,则很有用。
**sources**:在安装包之前要添加的apt包源列表。
**packages**:在运行测试之前要与apt一起安装的包列表。
**python_packages**:在运行测试之前要与"pip install-u"一起安装的python包列表。如果"virtualenv"为"true",则包将安装在virtualenv中。
**requirements**:pip需求文件名列表(相对于
charm或bundle root dir),它将
传递给"pip install-r"。如果"virtualenv"为true,则包将
安装在virtualenv中,否则它们将安装在
系统级别。(默认值:[])
**makefile**:要执行的make目标列表(默认值:[lint,test])。
**setup**:要在每次测试之前运行的"tests/"目录中的脚本的可选名称。
**teardown**:要在每次测试之后运行的"tests/"目录中的脚本的可选名称。
**bundle\u deploy**:仅在测试bundle时适用e.可接受的值为"true"、"false"或文件名。如果'true'(默认值),则在运行任何测试之前,juju deployer将部署包。如果"false",则将跳过部署步骤。如果给定了文件名,它应该是"tests/"目录中的可执行文件(可能是amulet脚本)。文件将作为部署步骤执行。如果要部署捆绑包,但需要先修改它,则会很有用。请注意,如果"bundle\u deploy"文件名与"tests"glob模式匹配,则将执行两次-在部署步骤中执行一次,作为测试执行一次。要防止这种情况,请使用与"bundle\u deploy"文件名不匹配的"tests"glob模式。
**deployment\u timeout**:初始bundle
deploy允许的最长时间(以秒为单位)(在运行任何测试之前)。如果"bundle_deploy"
的值不是"true"(默认值:2700),则此选项不起作用。
这些测试文件中的每个
都可以选择具有相同名称但扩展名为`.yaml`
的控制文件。如果存在,此文件的布局与tests.yaml类似。
如果bundle不是
指定的<;bundle根>;/bundle.yaml将默认使用。
设置:可选要在此测试之前运行的脚本。这是在
tests.yaml设置(如果存在)之后调用的。
teardown:要在此测试之后运行的可选脚本。这在
测试之前调用。yaml teardown(如果存在)。
如果"virtualenv"为true,则每个测试都将在激活该环境的情况下执行。
每个测试都将捕获其stdout和stderr。
非零返回表示失败。
此字符串将至少包含以下结构(可以使用其他键):
[{test result},…]
>每个测试结果是一个dict,其中至少包含:
{test':测试文件,结果:exit_code,
'exit':'返回exit code的脚本名',
"returncode":进程的exitcode,
"duration":以秒为单位的timedelta}
"exit"将不包括,如果结果成功(0)