問題タブ [pester]

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 に答える
325 参照

powershell - 関数へのパイプライン入力

HDInsight クラスターを作成するために使用される次の作業コードがあります。

パイプラインを使用していることに注意してください。ここで、このコードをテストするために( Pesterを使用して) 自動化されたテストを書きたいと思います。そのために、私はプロキシ関数と呼ばれるものでコマンドレット呼び出しをラップし、スプラッティングを使用してパラメーター値を渡します。これにより、テスト目的でそれらを簡単にモックできます。次に例を示します。

このコードを実行しようとすると、エラーが発生します。

Set-AzureHDInsightDefaultStorageProxy -StorageAccountName ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ [<<==>>] 例外:コマンドがパイプライン入力を使用しないか、入力とそのプロパティがパイプライン入力を使用するパラメーターのいずれとも一致しないため、入力オブジェクトをコマンドのパラメーターにバインドできません。

では、パイプライン入力を受け入れるように関数を変更する必要があります。Write PowerShell Functions That Accept Pipelined Input を読み、それに基づいてプロキシ関数を次のように書き直しました。

しかし、それは同じエラーで失敗しました。

明らかに、Powershell のスキル/知識が不足しているため、ここで失望しているので、関数を書き直してパイプライン入力を正常に受け入れて使用する方法を誰かが教えてくれることを願っています。

プロキシ関数を記述しているコマンドレットの定義は次のとおりです: Set-AzureHDInsightDefaultStorage。-Config パラメーターがパイプライン入力を許可するように設定されていることに気付きました。 ここに画像の説明を入力 そのため、プロキシ関数で同じことを指定する必要があると思いますが、その方法がわかりません。

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

powershell - Pester でべき等でない Web メソッドをテストする

Set-PropertyValueSharePoint リスト アイテムのプロパティ値を設定するPowerShell コマンド ( ) をテストしようとしています。Invoke-WebMethod関数は実際の作業に関数 do を使用します。

私の現在のSet-PropertyValue.Test.ps1ファイル:

私はいくつかの理由でこれが好きではありません:

  • 外部依存Get-PropertyValue
  • テスト分離なし。SharePoint リストに変更が加えられた
  • リスト項目を望ましくない状態に平準化する可能性
  • おそらくループで、複数のプロパティを簡単にテストするように構造化されていないテスト

これをテストするより良い方法はありますか?

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

powershell - Pester をリモートでインストールして起動する

私は PowerShell、Pester 、および新しい VSO ビルド システムを初めて使用し、チェックインごとに Pester でテストを実行しようとしています。チェックインごとに実行する単純な PowerShell スクリプトをセットアップして構成しました。

PowerShell 構成済み

最初に、VSO チームがこれを想定して共通の単体テスト フレームワークをセットアップしたかどうかを確認するために、単純に Invoke-Pester を試してみましたが、次の予測可能な結果になりました。

私はPSGetを使用しようとしました:

しかし、それも機能していません:

Pester をリモートでインストールして実行し、単体テストを実行するにはどうすればよいですか?

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

unit-testing - コマンドをモックし、モックが呼び出された回数に基づいて異なる結果を取得する

Pester を使用して、作成したコードの単体テストを行っています。Test-Pathテストでは、パラメーター フィルターを使用してモックを作成します。

以下は、私がやっていることの疑似コードです:

Test-PathI want to returnへの最初の呼び出し$falseで、2 回目の呼び出しで I want to return $true。これを達成する方法はいくつか考えられますが、それらは正しくないと感じています。

  1. 最初の呼び出しではPathパラメータを使用し、2 回目の呼び出しでは を使用しますLiteralPath。それぞれに forを持つ 2 つのモックParameterFilterを用意します。テストを容易にするためにコードをハッキングするという考えは好きではありません。

  2. Pathとのパラメータを持つ関数を作成しますInstanceNumber。関数のモックを作成します。これは上記よりも優れていますが、テスト目的のためだけにパラメーターを使用するという考えは好きではありません。

私は見て、n番目の呼び出しに基づいてモックする方法を見つけることができません. Pester はこれを容易にしますか? そうでない場合、私が望むものを達成するためのよりクリーンな方法はありますか?

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

powershell - ペスターを使用した PowerShell DSC スクリプト クラスのテスト - タイプ [ClassName] が見つかりません

ペスターの助けを借りて、クラスとして記述されたいくつかのカスタム DSC リソースをテストしようとしています。ただし、クラスを別のファイルで使用できるようにする方法を見つけるのに苦労しています。これは実際には厄介な問題ではありません.powershellでもこれを行うことはできません. SxDeployment.psm1 ファイルの次のようなクラスを含むモジュールがあります。

このモジュールには、SxWindowsService クラスを 'DscResourcesToExport' としてリストしている対応する .psd1 があります。モジュールとして登録されています。Get-Module -ListAvailable を実行するとこのモジュールが表示され、Import-Module を実行することもできます。

私の質問は、別のファイルからこのクラスへの参照を作成するにはどうすればよいですか?

次のような別のファイル test.ps1 があるとします

「タイプ [SxWindowsService] が見つかりません」というエラーが表示されます。

更新 もう少しいじくり回した後、.psm1 ファイルを .ps ファイルに変更し、import-module ステートメントを . .\SxDeployment.ps1. 問題は、DSC 構成の外部にある DSC リソース モジュール ファイルで定義されたリソースをどのように消費するかということです。