Powershell'de RSpec/Jasmine BDD framework'ü uygulamaya çalışıyorum (veya en azından bir tane oluştururken olası sorunları araştırın).PowerShell - belirli bir kapsamda komut dosyası yürütme komutunu çalıştırın
Şu anda basit önce/sonra işlevselliği uygulamakta sorunlar yaşıyorum. Verilen
$ErrorActionPreference = "Stop"
function describe()
{
$aaaa = 0;
before { $aaaa = 2; };
after { $aaaa; }
}
function before([scriptblock]$sb)
{
& $sb
}
function after($sb)
{
& $sb
}
describe
çıkış 0'dır, ama 2. olmak istiyorum $ aaaa bulunursa kadar komut dosyası bloklar halinde ana kapsamları, $ aaaa küresel hale geçme kısa PowerShell bunu başarmak için herhangi bir yolu (var mı $ aaaa bir "object" ve diğer kirli hack yapma :))
İdeal olarak ne isterim ki başka bir alanda bir komut dosyası bloğu çağırmak için bir yoldur, ancak bunun mümkün olup olmadığına dair bir fikrim yok. . https://connect.microsoft.com/PowerShell/feedback/details/560504/scriptblock-gets-incorrect-parent-scope-in-module'da ilginç bir örnek buldum (bkz. Geçici çözüm), ancak nasıl çalıştığından ve herhangi bir şekilde bana yardımcı olup olmadığından emin değilim.
TIA
Pester'e baktınız: https://github.com/scottmuc/pester – manojlds
Evet, muhtemelen yukarıda açıklanan sorunlardan dolayı RSpec/Jasmine gibi değil. Pester ile çok sınırlı bir deneyime sahibim, fakat IMHO Pester çok sınırlı bir çerçevedir, hayır/öncesi, iç içe tarif edilmemiş, kırık eşleştirici uygulaması vs. – mbergal
Katkıda bulunmayı düşünün :) – manojlds