問題タブ [chefspec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - どのリポジトリにも有効な gem 'fauxhai' (~> 3.2) が見つかりませんでした
クックブックにefauxhai(3.2.0)とともにchefspec(4.6.1)をインストールしようとしています。次の問題に直面しています「有効な宝石 'fauxhai' (~> 3.2) がどのリポジトリにも見つかりませんでした」。私はすでに他のクックブックでchefspec4.4.0とfauxhai2.3.0をインストールしていました。以下の問題で私を助けてください。
arrays - マルチウィンドウ機能をインストールしようとすると Chefspec が機能しない
IIS のコンポーネントをインストールするためのレシピがあります。たくさんあるので、windows_featureインストール ブロックにフィードするのは配列です。そのようです:
関連する Chefspec ブロックには、同じ配列コンテンツ フィードが含まれています。ブロックは次のとおりです。
クックブックで Chefspec を実行すると、次のエラーが表示されます。
-Featurename を 'WebServerRole' として表示するエラーでは、すべての行 (30 エントリ) に対してそれを行います。その段階で最初のアイテムのみを反復していることを示します。それは、私が間違いなく stub_command ブロックを使用しているという事実と相まって、なぜエラーが発生しているのかよくわかりません。誰にも考えはありますか?
ruby - レシピで registry_key を使用してライブラリ モジュール メソッドを使用すると Chef NoMethodError が発生する
エラーが表示される
Chefクックブックを収束するとき。
これはlibraries/hash_operations.rbの短いバージョンのコードです:
そして、ここにレシピ/default.rbがあります:
主な問題は、レシピから呼び出されるモジュール内のメソッド内でChef リソースのregistry_keyを使用しようとすることにあると思います。
moduleを使用していない場合は動作するバージョンがありますが、いくつかの記事が指摘しているように、ChefSpecでコードをテストする場合はモジュールが必要です(このような: ChefSpec のライブラリ クラス メソッドのスタブ)
上記のリンクは、モジュール内で定義されていない限り end?(HashOperations)を使用する理由です。
インクルード ステートメントを使用してみましたが、いくつかの StackOverflow の投稿で示唆されているように、コメントまたはレシピの最初の行で確認できますが、うまくいきません。1 つの投稿で LWRP の使用法について議論していましたが、コードはこのレシピに厳密に関連しており、他のクックブックでは使用されないため、ここではそうではないと思います。
注:私はselfを使用しています。defが互いに見えるようにするためです。そうしないと、 generate_reg_keys_for_item_keyが利用できないというエラーが表示されます。
だから、StackOverflowによって提案されたものを含め、これに関する解決策を探すのにかなりの時間を費やしたという事実を考慮して、質問:このエラーを解決し、ChefSpecでテストできる簡単な解決策を持つための最良の方法は何ですか(ただし、LWRP を完全に除外しているわけではありません)、converge 操作でregistry_keyを表示するには、何をどのように含める必要がありますか?
chef-infra - カスタム Chef リソースを ChefSpec と分離して単体テストするにはどうすればよいですか?
そこで、再利用可能なカスタム リソースのライブラリを作成しようとしています。このビデオではその方法を説明していますが、リソースを単独でテストすることについては説明していません。
レシピと収束を通じてリソースをテストできることは知っていますが、リソースをテストするためだけに新しいレシピを書きたくありません。
以下のようなことをしなくても、プロパティを持つカスタム リソースを実行する方法があることを期待していました。
あなたが言うようなことを言うことができれば
それは本当にクールだろう。
ruby - ChefSpec の実行速度が非常に遅い
私はこの基本的なチュートリアルに従っており、これらのテストは最大 2 秒で実行されるはずですが、5 つのテストで41 秒かかります。
私はChefSpecを実行しましたが--profile、これが結果です
8 例、0 失敗
rspec - Chefユニット/rspecテストでChef::ReservedNames::Win32::Version.newをモックしますか? 【続き】
仮定すると、次のレシピがあります。
install_iis:
include_recipeメソッドが実行されているかどうか(ifブロック内のすべて)、chefspecを使用してテストできるようにしたい。
読んだあと:
標準の RSpec が適用されます
allow(Chef::ReservedNames::Win32::Version).to receive(:new).and_return(double('fake version'))。ソース: Chef ユニット/rspec テストで Chef::ReservedNames::Win32::Version.new をモックしますか?
install_iis_specをモックするように変更しようとしましたChef::ReservedNames::Win32::Version。私の仕様ファイルは次のようになります。
install_iis_spec:
注1 :should_include_recipeメソッドが意図したとおりに機能すると仮定します。
注2 :見てdouble('fake version')から、値を入れるべきだと思います'6.3'。
ただし、実行するchef exec rspec spec/unit/recipes/install_iis_spec.rbと次のエラーが発生します。
コンソール エラー:
参照: cookbooks/iis/libraries/helper.rb:44:in 'older_than_windows2008r2?' .
double('fake version')をターゲットにするには、にどのような値を入力する必要がありWindows Server 2012R2ますか?
サポートされているバージョンのリストはありますか?