我可以通过以下命令运行一些厨师单元测试: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>'
答案 0 :(得分:0)
gemspec文件通常在创建Ruby gem时使用,并包含有关您正在创建的Gem的元数据。
使用bundle install
时,目录中需要Gemfile
。 Gemfile
用作目录中项目所需的gem的清单文件。 chef exec
可能正在查找此文件,并且只能使用此处指定的gem。
尝试使用内容
创建Gemfile
source 'https://rubygems.org'
gem 'rspec'
gem 'chefspec'
您应该列出您在文件中使用的其他宝石。
然后运行bundle install