問題タブ [serverspec]
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 - Serverspec: ディレクトリが空かどうかを確認します
既存のディレクトリが空であるかどうかを確認したい (ファイルやサブディレクトリが含まれていない)。
私は次のことを試しました:
しかし、これはうまくいきません。(もちろん、ドキュメントには記載されていません。)
重要: ディレクトリが存在するかどうかはテストしたくありません。ディレクトリは存在し、変更できません。
私のソリューションは次のようになります。
しかし、それは Serverspec リソース タイプ「ファイル」を使用していません。フォルダが空であることをテストするより良い方法はありますか?
ruby - カスタム Serverspec リソースタイプの期待が失敗したことを RSpec に通知する方法
ハッシュテーブルの各キーに対して、リソースタイプインスタンスに属性を割り当てます。キーが存在しない場合は、適切なメッセージで失敗したいと思います。
rspecのコードを掘り下げた後、モジュールをミックスインすると、テストが失敗したことを報告する必要があるRSpec::Expectations
呼び出しができることがわかりました。fail_with()
ただし、「スタックレベルが深すぎます」SystemStackError
という呼び出し行から取得しています。fail_with()
私はそれを間違っていると思います。意味のあるメッセージでテストを失敗させる方法はありますか?
chef-infra - Chef - ServerSpec - ノード属性へのアクセス
私が書いたクックブックの ServerSpec テストを作成中です。テストには、kitchen を介してさまざまなことをアサートするためのノード属性が必要です。
幸いなことに、これを達成する方法を説明するガイドがここにあります: http://jakshi.com/blog/2014/05/12/accessing-chef-attributes-in-serverspec-tests/
私が抱えている問題は、これが機能しないことです:
しかし、これは機能します:
私のセットアップは、ブログで説明されているものとまったく同じです。ruby-fu がないため、ブラウジングコードは役に立ちませんでした。シェフ クライアントのバージョンは 11.14.6 で、テスト キッチンのバージョンは 1.3.1 です。
誰か助けてくれませんか?他の誰かがこの問題を抱えていますか? ありがとう。
更新: これをシミュレートするために作成したダミーのクックブックのすべての属性を次に示します。
chef-infra - コマンドリソースをテストするときに「kitchen verify」が使用するユーザーを制御するにはどうすればよいですか?
「git バージョン 2.5.2」をインストールする Chef クックブックがあります。CentOS 6.4 vm を使用してこのクックブックを適用し、git のバージョンを確認するテストを作成しました。
スニペットは次のようになります。
kitchen verify を実行すると、テストは実行されますが、予想とは異なるバージョンの git が返され、テストが失敗します。
エラーは次のとおりです。
VM の /usr/bin ディレクトリには、たまたま git バージョン 1.7.1 がインストールされています。このレシピは、git バージョン 2.5.2 を /usr/local/bin ディレクトリにインストールします。コマンド「kitchen login」を使用して VM にログインすると、vagrant ユーザーとして接続されます。/usr/local/bin ディレクトリは PATH で /usr/bin より上位にあるため、「git --version」を実行すると、出力として「git version 2.5.2」が得られます。ただし、kitchen verify を実行すると、root ユーザーでテストが実行されます。root ユーザーの PATH には /usr/local/bin が含まれていませんが、/usr/bin が含まれているため、「git バージョン 1.7.1」が返されます。
テストの実行時にキッチン検証が使用する VM 上のユーザーを制御するにはどうすればよいですか?
次のようなテストで「su -c」コマンドを使用してみました。
結果は予想通りでした:
git コマンドで変更します。
結果:
vagrant ユーザーのパスの確認:
この場合、テストは成功します。vagrant ユーザーのパスは設定されないため、単純な「git --version」コマンドは機能しません。
ruby - 文字列の数値比較を行う方法
サーバー上のRAMの量がプロパティファイルにリストされているマウント以上かどうかを確認することを目的としたserverspecテストを作成しました
コマンドでテストしているマシンでは、「7539944」が得られます
プロパティ ram が "888" に設定されている場合、文字列比較 "888" が "7539944" より大きいため、テストは誤って失敗します。
serverspec の文字列型で数値比較を行う方法はありますか?
このirbセッションは、Rubyがどのように動作していると信じているか、どのように動作させたいかを示しています
説明をこれに変更すると
このエラーが発生します
ruby - rspec/serverspec サービス テストは常に失敗します
この問題はおそらくserverspec サービス テストの複製であると思われますが、私の実行環境についてもう少し情報を含めます。
AWS 上の RHEL6 VM に対して実行された多数の成功した serverspec テストがあります。
ただし、「サービス」テストは be_enabled および be_running マッチャーで失敗するようです。
私のspec_helper.rbには次のものがあります:
テスト用に serverspec と rspec の両方の構文を試しましたが、同じコマンドを実行すると両方とも失敗します。
ただし、サーバー上でローカルに実行すると成功します。
pry-byebug を使用してデバッグを設定する方法を調べてみましたが、それほど単純ではないように見えるので、今のところそれをあきらめました。
Ruby 2.0、serverspec 2.24、rspec 3.3 を実行しています
誰かが私を正しい方向に向けるのを手伝ってくれますか?
puppet - serverspec if 条件エラー
私は人形に以下のコードを持っています
私はこれのためにserverspecを書きました
1) メッセージの下に表示される理由
私のOSバージョンは6なので、serverspecコードをコンパイルする必要がありますが、すべての例を実行できないのはなぜですか.
に変更すると、serverspecは機能していますif os[:release] < '7'
2) } 4 オクテット マッチングit { should be_mode 440 }
を指定した場合もサポートしません。it { should be_mode 0440
エラーを下回る