問題タブ [rspec-puppet]
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.
rspec-puppet - rspec-puppet は file_line リソースをサポートしていません
以下のマニフェストと file_line リソースを持っています
以下はrspecファイルです
rake-spec コマンドを実行すると、以下のエラーが発生します
rspec は file_line リソースをサポートしませんか?
「file_line」リソースを削除してrsepcファイルを実行すると、動作するため
testing - レジストリが存在するかどうかを確認するために rspec-puppet でテストを作成することは可能ですか?
何らかの理由で、Package リソースを使用する代わりに、exec リソースを使用して puppet モジュールを使用して .net Framework 4.5.2 をインストールしようとしています。インストールされているかどうかを確認するテストケースを書きたいと思います。インストールされているかどうかを確認する唯一の方法は、レジストリ キーを確認することです。
レジストリが存在するかどうかを確認するために rspec-puppet でテストを記述できるかどうか知りたいですか?
この質問をserverfaultに投稿しようとしましたが、Captchaを処理できず、何度も要求するため、ここに投稿する必要がありました. 申し訳ありません。
前もって感謝します
ruby - Ruby のバージョンを切り替えると、rspec puppet が undefined method エラーで失敗するのはなぜですか?
1.8.7
次のgemファイルで実行されるRubyバージョンを使用してパペットモジュールを開発し、bundle install
rspecテストが正常に機能しました(パペットも実行されました):
ただし、Ruby を使用する CI サーバーでbundle install
同じことを行ったときに、次の rspec エラーが発生しました。Gemfile
1.9.3
一般的なエラーは次のとおりです。
メソッドを使用するテンプレートeach_with_index
:
別のバージョンのルビーでこれが失敗する理由を理解できていませんか? ルビーも試してみまし2.1.1
たが、同じ結果でした。1.8.7
結果は、Ruby を使用した CI サーバー(モジュールの開発に使用したのと同じバージョン)でのみ成功します。
更新 1
elastic_hosts
はハッシュ マップであり、文字列が失敗したためです。これを (別のハッシュ マップ) と共に修正したtrusted_hosts
結果、ほとんどのテストはパスしましたが、エラーは解決しません。
注: エラーは、上で強調表示されている一般的なエラーから変更されていません。
上記のテンプレート ファイルも完全な内容で更新しました。
私の構成仕様ファイルを見ると、default
どこにも文字列として指定していませんが、それはエラーであることがわかります..
修理
疑わしいように、私の初期仕様クラスにはデフォルトが設定されており、hiera ルックアップを追加して問題elastic_hosts
をtrusted_hosts
修正しました。
更新 2
1.8.7
この動作は、バージョンとバージョン >の間で再現可能1.9.3
です。ハッシュの扱い方に何か関係があるようです。
rspec - rspec-puppet でパラメータ化されたクラス変数をオーバーライドできますか?
単体テストを既存のモジュール (自分で作成したものではない) に改造しています。undef
params クラスの値を値にオーバーライドできないようですhash
。
params クラスには次のものがあります (抜粋のみ)。
主なクラス (抜粋のみ):
そして、次の構成クラス (抜粋のみ):
config_spec.rb ファイルには次のものがあります。
オーバーライドされることを期待して、hiera ルックアップをsplunk
myclass_spec.rb ファイルにプラグインしました。
しかし、次のエラーが引き続き発生します。
splunk
変数をオーバーライドするにはどうすればよいですか?
puppet - Rspec Puppet: 定義されたタイプの反復
- パペット 3 の使用
- rspec-puppet を使用したテスト
- 定義済みの型を使用してハッシュの配列を反復処理する
- 配列またはハッシュではないため、パラメーター (デフォルトで $title の値) にアクセスできないというエラーが表示される
puppet モジュールで古いスタイルの繰り返しを使用して、ハッシュの配列を繰り返し処理する定義済みの型を作成しています。rspec-puppet でこの定義のテストを書き、 using にハッシュを割り当てようとし:title
ていlet()
ます。は、という$title
変数に設定されるはずですが$daemon
、テストでは、それ$daemon
がハッシュでも配列でもないというエラーがスローされ続けます。
定義済みの型を作成する方法は次のとおりです。
そして、これが私がタイトルを設定しようとしている方法です:
そして、ここにエラーがあります:
daemon is not a hash or array when accessing it with package_version
私は実際には反復のために定義された型を使用することに少し慣れていません。
しかし、なぜそれは不平を言っているだけなpackage_version
のpackage_name
ですか?さらに重要なことは、スペックファイルで正しくハッシュに設定しているのに(私は信じている)、なぜハッシュではないのかということです。
この定義された型を使用するクラスの別のテストが正常に完了することを言及する必要があります。したがって、推測すると、定義を直接テストするときにタイトルを設定しようとしている方法に関連しているようです。
rspec - ファクトに対して小数乗算を行う Puppet テンプレートをテストするためにファクトをモックするにはどうすればよいですか?
環境:
レンダリング時にファクトのcount
サブコンポーネントに対処するパペット テンプレートがあります。processors
その事実は私のすべてのクライアントに存在します。
ファクトの使用例は、10 進数の計算を実行するテンプレート行にあります。たとえばMyConfigVar=<%= 0.9 * @processors['count'] %>
、一部の.erb
ファイルです。
したい:
- テンプレート化されたコードを本番ホストにデプロイします。
- テンプレート用の堅牢な単体テストを作成して、事実のさまざまな妥当な値が与えられた場合に適切にレンダリングされることを確認できるようにします。
私が試したこと:
最初に、私は sigils: で試しました<%= 0.9 * @processors[:count] %>
。rspec-puppet で のようなものをモックした場合facts = { :processors => { :count => 10 } }
、テストはすべてパスしました。マニフェスト アプリケーションが機能しませんでした。「乗算できませんnil
」というエラーがありました。シジルは明らかにアウトです。
次に、文字列のキーを試しました: <%= 0.9 * @processors['count'] %>
. シジル ( ) を使用したテストはfacts = { :processors => { :count => 10 } }
検出されませんでしたが、値が適切に検出され、 が乗算されましたfacts = { :processors => { 'count' => 10 } }
。その後、すべてのテストに合格しました。ただし、マニフェストの適用は失敗で失敗しましたCan't coerce String into Int
。
次に、文字列の値を試しました。テンプレートはまだ読み取ら<%= 0.9 * @processors['count'].to_i %>
れており、文字列と整数値の両方をテストしました。
0.0
テストはすべて合格しましたが、マニフェスト アプリケーションは事実の価値のためにレンダリングされました。
質問:
2 つの主な質問:
- この (または任意の) 事実を確実に処理するインライン 10 進数を取得するにはどうすればよいですか?
rspec-puppet
実稼働を代表する型を使用して、値を実際に使用して、または同様にモックすることで、確実に単体テストを行うにはどうすればよいですか?