从rakefile执行chef测试

时间:2015-08-27 14:48:25

标签: ruby rspec rake teamcity chefspec

我可以通过以下命令运行一些厨师单元测试:chef exec rspec

但是,我正在尝试从TeamCity运行这些,我正在使用rakefile。当我尝试执行rakefile时,测试文件中的require' chefspec'行会导致错误"cannot load such file -- chefspec (LoadError)"

我知道chefspec已安装。我是Ruby,chefspec,rspec的新手。我知道有一个gemspec文件,我试图在目录中创建一个我可以运行命令chef exec rspec来执行测试。但是,当我尝试运行bundle install时,我收到错误Could not locate Gemfile or .bundle/ directory。安装ruby时是否有gemfile的默认位置?我现在很失落。

C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in要求':无法加载此类文件 - chefspec(LoadErr 要么)         来自C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require' from D:/../spec/octopus_tentacle_spec.rb:1:in'         来自C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:在load load' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in块中 spec_files'         来自C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in each' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in load_spec_file S'         来自C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:102:in setup' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:in run'         来自C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in run' from C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in invoke'         来自C:/Ruby22/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/exe/rspec:4:in <top (required)>' from C:/Ruby22/bin/rspec:23:in load'         来自C:/ Ruby22 / bin / rspec:23:<main>'

1 个答案:

答案 0 :(得分:0)

gemspec文件通常在创建Ruby gem时使用,并包含有关您正在创建的Gem的元数据。

使用bundle install时,目录中需要GemfileGemfile用作目录中项目所需的gem的清单文件。 chef exec可能正在查找此文件,并且只能使用此处指定的gem。

尝试使用内容

创建Gemfile
source 'https://rubygems.org'

gem 'rspec'
gem 'chefspec'

您应该列出您在文件中使用的其他宝石。 然后运行bundle install