一位朱雀魅力与捆绑测试选手

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)




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将jasper集成到jhipster项目中   java无法忽略lombok注释   关于tomcat日志的java问题   java@Autowired未设置字段>NullPointerException   GUI提交按钮不工作   java气泡和选择排序   java如何编写规则来匹配两个数组?   java如何找出某个字符在字符串中的第一次、第二次或第三次出现?   java通过字符串引用id   javascript在网络视图中加载在线图表   java保留web应用程序中用户更改的日志   在安卓中尝试使用Mandrill SMTP发送电子邮件时出现java错误   用java语言将a2b4c5等字符串转换为AABBCCCCC的程序是什么?   java无需TODO即可删除所有注释   java JMX MBean在应用程序部署时自动注册   java如何使用JSON解析从任何url解析数据   java@transactional注释类使用代理包装,但未创建事务   JavaFx转换和打印