2016-07-11 8 views
0

私のレシピがdynaTraceのモジュールをインストールし、それを可能に手つかずのリソースで失敗:RSpecのは

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 

マイspecファイルには以下が含まれています。

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 

仕様の不具合の原因となる問題を特定するための助けが必要です。

答えて

0

あなたの説明から、問題は問題のないリソースのために失敗しているとは限りません。シェフの実行にはリソースがhttps://github.com/Dynatrace/Dynatrace-Chef/blob/master/recipes/wsagent_package.rbのルックスから、ファイル/opt/dynatrace/agent/lib64/libdtagent.so

を作成しないよう

あなたchefspec実行が失敗した、レシピは、アーカイブ/タールの抽出を介して、そのファイルを作成することができます含まれています。これは副作用であるため、単体テストを使用して直接テストすることはできません。

あなたは機能の2つの部分を一緒に接着するラッパーの料理本を書いているようです。

テスト用キッチン(serverspec付き)などのツールは、作成している統合テストに適しています。