Skip to main content

Powershell Scriptlerinizi Test Edin –Pester Modülüne Giriş – Bölüm 2

· 3 min read
Hasan Gural

Yazımızın ilk serisinde neden Powershell – Pester Modülünü kullanmamız gerektiğinden bahsettik. Şimdi ise nasıl kullanmalıyız ve ne tür bir kullanım modeli olduğunu inceleyelim. Basit bir Powershell function geliştirdik ve bunun içerisinde bir takım kod bloklarımız olsun. Aşağıdaki detaylara ufak bir göz gezdirme ile neler yaptığını anlayalım.

"Get-Month" adında bir Powershell fonksiyonu geliştirdim. Bu fonksiyon bize bir yıl içerisinde bulunan ayları geri dönüyor olacak. Parametrik olarak vererek ise tüm aylar arasında filtreleme yapabilme şansınız var. Şimdi ise Pester içerisinde bulunan komutları tanıyalım ve görelim. Öncelikle 'Describe' ile başlayalım. Describe bize, test etmek istediğiniz Powershell Script Block başlangıcı sağlar. Örnek kullanım şekli aşağıdaki gibidir.

Yukarıda görüldüğü gibi, Test sürecinin başlaması için 'Describe' fonksiyonu ile tanımlamayı yapıyoruz. Yani Pester ile Test sürecine başlamak için 'Describe' ile ilk tanımınızı yapıp Script block (süslü parantez) ile tamamlıyorsunuz. Peki daha sonra ne yapmamız gerekiyor, artık test'e başlamak için bir isim verdik. Ama hangi testlerden geçmesi gerektiğine düşünüp yazmaya karar verdik. Bunun için ise devreye Pester Modülü içerisinde olan 'It' fonksiyonu giriyor olacak. 'It' fonksiyonu öncesi istersen 'Context' adında bir fonksiyon daha çağrıp extra yapacağımız testlere isim verebiliriz. Aşağıda bulunan örnekte detaylara bakalım.

Öncelikle, daha öncede söylediğimiz gibi bütün Powershell Pester Testleriniz kesinlikle Describe bloğuna sahip olmalıdır, Describe bloğu diyorum çünkü bildiğiniz gibi zaten kendiniz bir cmdlet-powershell function olarak kullanıyoruz. Aynı şekilde diğerleri 'It', 'Context'. Basit olarak bu Script blockları arasına istediğinizi yazmakta özgürsünüz. Şimdi ise geliştirdiğimiz function üzerinden hemen bir test süreci yazalım ve tekrar üzerinden beraber okuyalım.

Script satırlarına bakıldığı zaman aklımızda olan satırları tek tek inceleyelim. Öncelikle 'Describe ve Context' neden yazdığımızı anladık. Zaten çok basit bir şekilde gözlemleyebiliyoruz. Fakat 'It' script block kısmı dilediğimizi özgürce yazdığımız kısım idi. Daha doğrusu test süreçlerimizi adım adım belirttiğimiz yer. Ben kolay ve anlaşılabilir olması için, iki adet 'It' script block içerisinde bir takım kontroller yazdım. Bu kısımdaki kontrollerimize hızlı bir şekilde dikkat edelim. Yazdığımız fonksiyon bize yıl içerisindeki tüm ayları geri döndürüyor ve bununla beraber parametre alarak eğer gönderilen parametre değerinde bir değer belirtilmiş ise bu ve bu değer herhangi bir ay ile match edilir durumda ise sadece o ay bilgisini bize geri döndürüyor. Fonksiyon içerisinde yaptığımız işlemlerin bir kısmını Pester ile kontrol etmeye çalıştık. Bunlar neler kısaca,

  • Bütün aylar toplam sayısı – 12'ye eşit olmalı.
  • Gönderilen parametre değeri eğer ayarlar içerisinde herhangi bir değer ile match olmuyorsa.
  • ( Devamı eklenebilinir. 'It' script blockları ile belirtebilirsiniz.)

Artık tüm adımlarımızı yazdığınızı varsayalım ve test sürecine geçelim. Bu kısımda yazdığımız Pester – Powershell Script kaydediyoruz. Test sürecinin nasıl çalıştığını ve ilerlediğini anlamak için devreye 'Invoke-Pester' adında bir cmdlet çıkmaktadır. Bu Cmdlet içerisine parametrik olarak mevcut Powershell Pester-Test Scriptinizi gönderip sonuçları görebilirsiniz. Aşağıdaki detaylara beraber bakalım.

Invoke-Pester isimli cmdlet içerisine '.\Pester.ps1' yazmış olduğu script'imi gönderdim ve çalıştırdığım zaman bir sonuç ekranı çıkardı. İşte bu ekran üzerinde hangi test sürecinin ne kadar süre sürdüğünü, hangi test sürecinin başarılı olduğunu veya başarısız olduğunu anlayabilirsiniz. Son olarak ise tüm bu sürecin bütün halinin detaylarını son satır detayında görebiliyorsunuz. Sizde artık tüm scriptlerinizdeki test süreçlerinizi Powershell – Pester Module ile kolay bir şekilde gerçekleştirebilirsiniz.