PowershellでBDDフレームワークのようなRSpec/Jasmineを実装しようとしています。PowerShell - 特定のスコープでスクリプトブロックを実行する
現在、私は単純な前後機能を実装することに問題があります。
$ErrorActionPreference = "Stop"
function describe()
{
$aaaa = 0;
before { $aaaa = 2; };
after { $aaaa; }
}
function before([scriptblock]$sb)
{
& $sb
}
function after($sb)
{
& $sb
}
describe
与えられた出力は0ですが、私はそれが2になりたいの$ AAAAが発見されるまで、スクリプトブロックで親スコープを横断$のAAAAがグローバル作るの短いPowerShellでそれを達成する方法は(、あります$ aaaaを "オブジェクト"やその他の汚れたハックにする:))
私が理想的に思うのは、他のスコープでスクリプトブロックを呼び出す方法ですが、 。私はhttps://connect.microsoft.com/PowerShell/feedback/details/560504/scriptblock-gets-incorrect-parent-scope-in-moduleに面白い例を見つけました(回避策を見てください)。
TIA
Pester:https://github.com/scottmuc/pester – manojlds
はい、おそらく上記の問題のためにRSpec/Jasmineとよく似ていません。私はPesterで非常に限られた経験を持っていますが、IMHO Pesterは非常に限定されたフレームワークであり、後/後、ネストされた記述、壊れた正規表現の実装などはありません – mbergal
寄付を検討してください:) – manojlds