- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在一本 Recipe 上,我定义了一个 Rds::Checks 类,它共享为 bash/execute 资源和 Guards 构建 unix 命令的方法。文件 libraries/checks.rb 的示例是:
module Rds
class Checks
class << self
def ssh_config_entry_present host, config_file, key_name
"cat #{config_file} | grep #{key_name}"
end
def redmine_migrated user, pass, name
"if [ `mysql -u#{user} -p#{pass} -e 'select count(id) FROM #{name}.users;' | sed -n '2 p'` -gt 0 ]; then echo '0'; else echo '1'; fi"
end
end
end
end
在 LWPR 提供程序、 Recipe 和 chefspec 测试中,文件加载没有问题,但是当我通过 kitchen verify
在 serverspec 中使用它时,它会引发错误。
paolo@tower:~/cookbooks/rds$ cat test/integration/install/serverspec/localhost/install_spec.rb
...
it 'do migrations' do
cmd = Rds::Checks.redmine_migrated
expect(command(cmd).stdout).to eq 0
end
...
paolo@tower:~/cookbooks/rds$ kitchen verify
...
NameError:
uninitialized constant Rds
我真的很想在公共(public)层上保留构建 bash/sh 命令的方法,这样我就可以单独测试它,而不用在单元测试和集成测试上打扰它们
最佳答案
您必须非常手动地加载它,可能会将保存 Recipe 数据的临时文件夹添加到加载路径,我认为它在 /tmp/kitchen/cookbooks
下。添加正确的 libraries/
文件夹,然后按正常方式要求。总的来说,收敛和验证阶段彼此无关,因为测试厨房可以与 Chef 以外的其他东西一起使用。
你可能想看看像 minitest handler 这样的东西它在 Chef 聚合上下文或 audit mode proposal 中运行测试它做类似的事情。
使用类似其中之一的方法,您可以在说明书本身中编写测试,因此 converge 实际上会收敛节点然后运行测试,而 verify 要么是空操作,要么会运行额外的、外部的测试。
关于ruby - 如何在厨房 serverspec 测试中要求 Recipe 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27180214/
我正在尝试使用 rspec、serverspec 和 docker-api gems 测试 Dockerfile。在大多数情况下,我的测试都通过了,但所有使用 command 方法的测试都失败了,无论
我对 serverspec 有疑问。我正在尝试检查 ubuntu 上已安装的软件包版本。 我使用这段代码: describe 'java packages' do it 'package open
我想检查现有目录是否为空(不包含任何文件或子目录)。 我尝试了以下方法: describe file('/path/to/file') do it { should be_empty } en
我相信这个问题可能与 serverspec service test returns incorrect failure 重复,但我包含了更多关于我的执行环境的信息。 我针对 AWS 上的 RHEL6
我的 serverspec 示例,使用 serverspec-init 进行设置,然后我生成了这个简单的测试文件 ./spec/altspf01/sample_spec.rb require 'spe
我在 serverspec 配方中进行了以下测试 - 哈希只是 Chef 中描述的整个资源(我希望在某个时候将其通过管道传输) # Test Folder Permissons # hash take
Serverspec 站点的高级提示部分显示了使用相同测试集测试多个主机的示例。我自己构建了一个示例 ( https://gist.github.com/neilhwatson/81249ad3938
我正在使用 Terraform 自动构建基于 AWS EC2 的 docker 主机,然后使用其远程 exec 选项下载 docker 文件,构建并运行它。 我希望将其与 Serverspec 集成,
我的要求是我需要运行安装在其他用户中的实用程序,我必须检查从该 session 返回的输出并验证它。示例: 我以 srijava 用户身份安装了 java 现在在 Serverspec 中,我编写了测
我正在使用 Test-Kitchen与 serverspec总线。我正在尝试测试 redis服务正在运行到我的厨房实例中。 这是我的 serverspec 测试。 describe "myapp::r
在一本 Recipe 上,我定义了一个 Rds::Checks 类,它共享为 bash/execute 资源和 Guards 构建 unix 命令的方法。文件 libraries/checks.rb
我在使用 ServerSpec 对我的 Chef 说明书运行集成测试时遇到了问题。当我今天尝试运行测试时,没有做任何更改,我收到以下错误: tl;博士 /tmp/busser/suites/serve
我被测试驱动的基础设施错误所困扰。我目前的项目使用的是Azure,包括SQL Azure、Azure表、云服务和移动服务。配置整个环境有些复杂。现在我正在寻找一个测试框架,我可以用它来验证环境配置是否
我有这个 serverspec 测试: describe package("python-pip") do it { should be_installed.with_version("6
当使用 chef generate cookbook hello 命令时,生成的 serverspec spec_helper.rb 文件将不适用于 Test-Kitchen 1.4.1 和 wind
从文档看来,使用 Serverspec 来验证软件包是否已安装应该非常简单,但我在使用 vim 和 ag 时遇到了一些有趣的问题(the_silver_searcher)。 我正在使用带有 kitch
考虑一下,我有两本 Recipe A 和 B,每本都有自己的集成测试,使用 serverspec 测试和 kitchen。如果我只想针对自己的测试套件测试一本 Recipe ,一切都可以正常工作。现在
我是一名优秀的程序员,十分优秀!