0

私のレシピでは、dynatrace モジュールをインストールして有効にします。

include_recipe 'dynatrace::wsagent_package'

apache2_module 'dtagent_module' do
  module_name 'dtagent_module'
  filepath node['dynatrace']['apache_wsagent']['linux']['agent_path']
  action [:enable]
end

私の仕様ファイルには次のものが含まれています。

  it 'creates /opt/dynatrace/agent/lib64/libdtagent.so file' do
    expect(chef_run).to render_file('/opt/dynatrace/agent/lib64/libdtagent.so')
  end

Rspec を実行すると、次のエラーで失敗します。

$ rspec -f d ./spec/unit/recipes/apache_spec.rb[1:4]

Run options: `include {:ids=>{"./spec/unit/recipes/apache_spec.rb"=>["1:4"]}}`

dynatrace::apache
  creates /opt/dynatrace/agent/lib64/libdtagent.so file (FAILED - 1)

Failures:

  1) dynatrace::apache creates /opt/dynatrace/agent/lib64/libdtagent.so file
     Failure/Error: expect(chef_run).to render_file('/opt/dynatrace/agent/lib64/libdtagent.so')
       expected Chef run to render "/opt/dynatrace/agent/lib64/libdtagent.so"
     # ./spec/unit/recipes/apache_spec.rb:35:in `block (2 levels) in <top (required)>'

Finished in 1.13 seconds (files took 8.93 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/unit/recipes/apache_spec.rb:34 # dynatrace::apache creates /opt/dynatrace/agent/lib64/libdtagent.so file


ChefSpec Coverage report generated...

  Total Resources:   1
  Touched Resources: 0
  Touch Coverage:    0.0%

Untouched Resources:

  apache2_module[dtagent_module]     dynatrace/recipes/apache.rb:12


ChefSpec Coverage report generated...

  Total Resources:   1
  Touched Resources: 0
  Touch Coverage:    0.0%

Untouched Resources:

  apache2_module[dtagent_module]     dynatrace/recipes/apache.rb:12

仕様の失敗の原因となっている問題を特定するのに助けが必要です。

4

1 に答える 1

0

あなたの説明から、問題は、手付かずのリソースが原因で失敗することではありません。

シェフの実行でファイルを作成するリソースがないため、chefspec の実行が失敗しました/opt/dynatrace/agent/lib64/libdtagent.so

https://github.com/Dynatrace/Dynatrace-Chef/blob/master/recipes/wsagent_package.rbの外観から、含まれているレシピは、アーカイブ/tar の抽出を介してそのファイルを作成する可能性があります。これは副作用であるため、単体テストを使用して直接テストすることはできません。

2 つの機能を結合するためのラッパー クックブックを作成しているようです。

serverspec を使用した test kitchen などのツールは、作成している統合テストにより適している場合があります。

于 2016-08-12T19:07:02.733 に答える