問題タブ [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.

0 投票する
1 に答える
939 参照

rspec-puppet - rspec-puppet は file_line リソースをサポートしていません

以下のマニフェストと file_line リソースを持っています

以下はrspecファイルです

rake-spec コマンドを実行すると、以下のエラーが発生します

rspec は file_line リソースをサポートしませんか?

「file_line」リソースを削除してrsepcファイルを実行すると、動作するため

0 投票する
1 に答える
70 参照

testing - レジストリが存在するかどうかを確認するために rspec-puppet でテストを作成することは可能ですか?

何らかの理由で、Package リソースを使用する代わりに、exec リソースを使用して puppet モジュールを使用して .net Framework 4.5.2 をインストールしようとしています。インストールされているかどうかを確認するテストケースを書きたいと思います。インストールされているかどうかを確認する唯一の方法は、レジストリ キーを確認することです。

レジストリが存在するかどうかを確認するために rspec-puppet でテストを記述できるかどうか知りたいですか?

この質問をserverfaultに投稿しようとしましたが、Captchaを処理できず、何度も要求するため、ここに投稿する必要がありました. 申し訳ありません。

前もって感謝します

0 投票する
1 に答える
624 参照

ruby - Ruby のバージョンを切り替えると、rspec puppet が undefined method エラーで失敗するのはなぜですか?

1.8.7次のgemファイルで実行されるRubyバージョンを使用してパペットモジュールを開発し、bundle installrspecテストが正常に機能しました(パペットも実行されました):

ただし、Ruby を使用する CI サーバーでbundle install同じことを行ったときに、次の rspec エラーが発生しました。Gemfile1.9.3

ここで詳細なエラーを参照してください

一般的なエラーは次のとおりです。

メソッドを使用するテンプレートeach_with_index:

別のバージョンのルビーでこれが失敗する理由を理解できていませんか? ルビーも試してみまし2.1.1たが、同じ結果でした。1.8.7結果は、Ruby を使用した CI サーバー(モジュールの開発に使用したのと同じバージョン)でのみ成功します。

更新 1

elastic_hostsはハッシュ マップであり、文字列が失敗したためです。これを (別のハッシュ マップ) と共に修正したtrusted_hosts結果、ほとんどのテストはパスしましたが、エラーは解決しません。

ここでエラーを参照してください

: エラーは、上で強調表示されている一般的なエラーから変更されていません。

上記のテンプレート ファイルも完全な内容で更新しました。

私の構成仕様ファイル

私の構成仕様ファイルを見ると、defaultどこにも文字列として指定していませんが、それはエラーであることがわかります..

修理

疑わしいように、私の初期仕様クラスにはデフォルトが設定されており、hiera ルックアップを追加して問題elastic_hoststrusted_hosts修正しました。

更新 2

1.8.7この動作は、バージョンとバージョン >の間で再現可能1.9.3です。ハッシュの扱い方に何か関係があるようです。

0 投票する
2 に答える
1012 参照

rspec - rspec-puppet でパラメータ化されたクラス変数をオーバーライドできますか?

単体テストを既存のモジュール (自分で作成したものではない) に改造しています。undefparams クラスの値を値にオーバーライドできないようですhash

params クラスには次のものがあります (抜粋のみ)。

主なクラス (抜粋のみ):

そして、次の構成クラス (抜粋のみ):

config_spec.rb ファイルには次のものがあります。

オーバーライドされることを期待して、hiera ルックアップをsplunkmyclass_spec.rb ファイルにプラグインしました。

しかし、次のエラーが引き続き発生します。

splunk変数をオーバーライドするにはどうすればよいですか?

0 投票する
1 に答える
481 参照

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_versionpackage_nameですか?さらに重要なことは、スペックファイルで正しくハッシュに設定しているのに(私は信じている)、なぜハッシュではないのかということです。

この定義された型を使用するクラスの別のテストが正常に完了することを言及する必要があります。したがって、推測すると、定義を直接テストするときにタイトルを設定しようとしている方法に関連しているようです。

0 投票する
2 に答える
1066 参照

rspec - ファクトに対して小数乗算を行う Puppet テンプレートをテストするためにファクトをモックするにはどうすればよいですか?

環境:

レンダリング時にファクトのcountサブコンポーネントに対処するパペット テンプレートがあります。processorsその事実は私のすべてのクライアントに存在します。

ファクトの使用例は、10 進数の計算を実行するテンプレート行にあります。たとえばMyConfigVar=<%= 0.9 * @processors['count'] %>、一部の.erbファイルです。

したい:

  1. テンプレート化されたコードを本番ホストにデプロイします。
  2. テンプレート用の堅牢な単体テストを作成して、事実のさまざまな妥当な値が与えられた場合に適切にレンダリングされることを確認できるようにします。

私が試したこと:

最初に、私は 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 つの主な質問:

  1. この (または任意の) 事実を確実に処理するインライン 10 進数を取得するにはどうすればよいですか?
  2. rspec-puppet実稼働を代表する型を使用して、値を実際に使用して、または同様にモックすることで、確実に単体テストを行うにはどうすればよいですか?