我一直在尝试向其中一个添加一些功能Openstack Charms并测试我的更改。为了进行测试以确保我没有破坏任何其他功能,我一直在尝试运行提供的测试套件。每个 openstack charm 都包含一个测试目录,其中包含运行测试的步骤。我一直在完全干净的 ubuntu 14.04.3 虚拟机上运行以下命令,该虚拟机上没有运行其他命令(请注意,我在其上运行的代码直接来自存储库,不包含我的修改):
sudo add-apt-repository ppa:juju/stable
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install charm-tools
sudo apt-get install juju-core
ssh-keygen -t rsa
juju init
juju switch local
bzr branch lp:~openstack-charmers/charms/trusty/neutron-api/next
cd next
make test
在最后一个命令运行后,我发现几乎所有的测试都失败了,并出现错误
Traceback (most recent call last):
File "tests/014-basic-precise-icehouse", line 5, in <module>
from basic_deployment import NeutronAPIBasicDeployment
File "/home/ubuntu/next/tests/basic_deployment.py", line 47, in <module>
from charmhelpers.contrib.openstack.amulet.utils import (
File "/home/ubuntu/next/tests/charmhelpers/contrib/openstack/amulet/utils.py", line 25, in <module>
import cinderclient.v1.client as cinder_client
我只是遗漏了一些明显的配置选项,还是所有 openstack juju charms 的测试套件都坏了?到目前为止,我已经下载了几个其他 charm 集(nova-compute 和 neutron-api)并尝试运行它们的测试,到目前为止,所有测试都出现了这个错误。
答案1
我们非常感谢大家的贡献,也很高兴帮助引导开发人员成功完成代码合并。单元测试和 Amulet 测试覆盖率确实有助于加快审核流程。
我可以确认您所描述的问题是一个已知问题。我们已经在准备合并提案,以在 15.10 OpenStack charm 版本发布之前解决这些护身符测试依赖性问题。 同时,可以通过编辑 00-setup 文件来满足 Amulet 测试依赖关系,使其看起来像建议的 00-设置文件。
为了确保护身符测试贡献的顺利审核和落地,建议的护身符测试添加应采用新的幂等形式测试_方法测试/basic_deployment.py文件。每个测试_该方法适用于所有当前支持的 Ubuntu + OpenStack 组合,预计会通过,无论测试_執行命令。
这Ubuntu 云存档页面提供了一个图表,描述了在发布时间线的任何给定点支持哪些组合。
为了确保顺利审查添加的钩子功能,应该包括相应的单元测试覆盖率,以便验证这些代码功能。
在为 OpenStack 魅力做出贡献的更广泛话题上,OpenStack Charm 开发政策值得回顾。
具体来说,任何提议的更改都应针对“下一个”(开发)魅力分支进行,而不是针对主干或稳定的魅力分支。对于 neutron-api,下一个分支将是:
lp:~openstack-charmers/charms/trusty/neutron-api/next
谢谢您,欢迎通过这里、freenode #juju 或Juju 邮件列表。