Close Menu
Codeturkiye.com
  • Genel
  • Windows
  • Android
  • İphone
  • Mobil
  • İnternet
  • İOS
  • Oyunlar
  • Bilgisayar
  • Yazılım
  • iletisim
teset

Android donma kesin çözüm

03/05/2026

Mavi ekran hatası kesin çözüm rehberi

30/04/2026

Bellek bütünlüğü sürücü hatası kesin çözüm rehberi

29/04/2026

WhatsApp web bağlanmıyor kesin çözüm rehberi

29/04/2026
Facebook X (Twitter) Instagram
Facebook X (Twitter) Instagram
Codeturkiye.com
Abone ol
  • Genel
  • Windows
  • Android
  • İphone
  • Mobil
  • İnternet
  • İOS
  • Oyunlar
  • Bilgisayar
  • Yazılım
  • iletisim
Codeturkiye.com
Home»Yazılım»PowerShell Kodumu Nasıl Test Edilir
Yazılım

PowerShell Kodumu Nasıl Test Edilir

By BESIR KURT22/05/2017Yorum yapılmamış4 Dakika Okuma
Facebook Twitter Pinterest LinkedIn Tumblr WhatsApp VKontakte Email
Paylas.
Facebook Twitter LinkedIn Pinterest Email

PowerShell komut dosyalarınız kuruluş için gittikçe önem kazandığından, sonuçları birkaç kez gözlüyor ve komut dosyasının bir hata döndürmediğini onaylamak yeterince iyi bir test değildir. Özellikle, PowerShell kodu yazdıklarınız üretim sistemlerini sürdürüyorlarsa, o komut dosyasını kaya gibi sağlamlaştırmak için birçok farklı senaryo ile çalıştırmak için fazladan bazı adımlar atmanız önemlidir. Bunu yapmanın yolu Pester testleri yaratmaktır.

Pester bir açık kaynak kodlu birim test çerçevesidir. Pester, yaptığınızın beklediğiniz gibi olduğunu onaylamak için PowerShell kodu için testler yazmak için kullanılır. Özetle, Pester, kodunuzun gerektiği gibi çalışmasını sağlamak için kalite güvencesi olarak kodunuzun “üstüne” yazan koddur. Neyse ki, Pester kendisi PowerShell‘de yazılmıştır, bu nedenle onu nasıl kullanacağınızı öğrenmek için bir yazılım geliştiricisi olmak zorunda değilsiniz. Vanilla PowerShell ve Pester arasındaki birkaç sözdizimsel farkı öğrendiğiniz sürece, sorun yaşamayacaktır.

Pester sadece bir PowerShell modülü olduğundan, PowerShell Galerisi’nden kolayca indirebilir ve kurabiliriz. Bu size en son sürümü verecektir. Bununla birlikte, herhangi bir nedenle, en son sürümü edinmek istemiyorsanız, Pester varsayılan olarak Windows 10‘a yüklenmiş olarak gelir.

Yükleme Modülü -Name Pester

Pester modülünü kurduktan sonra, artık bazı testler oluşturmanın zamanı geldi. Pester testleri yalnızca belirli bir şekilde yazılan PowerShell komut dosyalarıdır, ancak tüm test komut dosyalarının. Tests.ps1 ile bitmesi önerilir. Bu teknik olarak gerekli değildir, ancak daha sonra bir sürü test komut dosyası çalıştırırken daha sonra kullanışlıdır.

Pester test betiği, üç farklı “düzey” in hiyerarşisine bölünür. Bu seviyeler açıklama, bağlam ve budur. İçerik bloğu hariç hepsi zorunludur.

‘Seviyeyi tanımla’ tarifini {

Bağlam ‘bağlam seviyesi’}
seviyede ‘{
 

}
}
}

En yüksek “seviye”, açıklama bloğu, birden fazla blok için bir konteynerdir. Açıklama bloğu farklı yollarla oluşturulabilir, ancak ortak bir yöntem işlevi başına bir açıklama bloğu oluşturmaktır. Ardından, açıklanan bloğun içinde, gerçek sınamalarınız veya iddialarınız olacak birden çok bloğu içerecek şekilde. İşleri basit tutmak için, tek bir işlev için birkaç test oluşturalım. Bu işlev ComputerName adlı tek bir parametreyi kabul eder ve bilgisayar çevrimiçi olduğunda $ true, bilgisayar çevrimdışıysa $ false değerini döndürür.

Işlevi Ping-
Bilgisayar { param ($ BilgisayarAdı)
 

Sınama Bağlantısı-BilgisayarAdı $ BilgisayarAdı

}

Kabul ederseniz, bu en yaratıcı örnek işlevi değildir çünkü yalnızca Test-Connection’ı kendiniz arayacak, ancak bu basit durumu göstereceksiniz.

Bu işlevi “yapmak” nedir? Bu açık görünebilir, ancak soruyu kendinize sormanız ve yürütülebilecek senaryoları yavaşça gezmeniz önemlidir.

  1. $ ComputerName FOO ve FOO olduğunda bilgisayarınıza gerçek bir bilgisayar bile olmadığında ne olur?
  2. $ BilgisayarAdı BAR ve BAR gerçek bir bilgisayar olduğu, ancak DNS üzerinden çözümlenemediğinde ne olur?
  3. $ BilgisayarAdı gerçek bir bilgisayar olduğunda ancak ping’e yanıt vermediğinde ne olur?
  4. $ BilgisayarAdı gerçek bilgisayar ama ne olur muping yanıt?

Bunlar gerçek testler oluşturmaya başlamanız için kendinize sormanız gereken soruların türüdür. Şimdilik, yalnızca ComputerName’nın gerçek bir bilgisayar olduğunu ve DNS yoluyla çözülebileceğini varsayacağız. Bu varsayımı yaptığımızdan beri, yalnızca iki test oluşturmamız gerekiyor; $ True değerini garantilemek için bir test döndürülür ve Test-Connection’ın $ true veya $ false değerini döndüren senaryosu göz önüne alındığında, $ false değerini sağlamak için bir test döndürülür. Ama, nasıl yaptığımız yapmak Test-Bağlantı dönüş $ true veya $ false. DNS hile ya da çevresel bir şey yapmayacağız. Bunun yerine, istediğimiz her şeyi geri getirmek için Test-Connection’ı alay edebiliriz.

Basit bir tanım bloğu oluşturalım ve ikisi senaryomuzu temsil eden blokları oluşturalım.

‘Ping-Computer’u tarif edin {‘ bilgisayar çevrimiçi
 

olduğu zaman $ true döndürmelidir ‘{
 

}}
 

bilgisayar çevrimdışı olduğunda $ false döndürmelidir’ {
 

}
}

Şimdi “bilgisayar çevrimiçi” ve “bilgisayar çevrimdışı” benzetimi yapmamız gerektiğini anlamalıyız. Bunu yapmak için, Test-Connection için bir alay oluşturacağız.

Alay al ‘Test-Bağlantı’ -MockWith {$ true}

Pester’deki Mocks, komutları duruma göre onlara ihtiyacımız olan şeyi geri getirmeye zorlamak için yollar. Bu durumda, $ true veya $ false değerini geri gönderebilmek için Test-Connection’a ihtiyacımız var. Yukarıda, Test-Connection’ı $ true değerine döndürmeye zorladığımı görebilirsiniz. Ben devam edip, bunu testime ekleyeceğim, aksine tam tersi yanlış duruma sokacağım.

‘Ping-Bilgisayar’ {tanımlamak
 

{o bilgisayar çevrimiçi olduğunda doğru $ dönmelidir ‘
sahte ‘Test-Bağlantı’ -MockWith {$ true}
 

Ping-Bilgisayar -ComputerName ‘DOESNOTMATTER’
}
 

o ‘$ return false gerekirken bilgisayar
Çevrimdışı ‘{ mock’ Test-Connection ‘-MockWith {$ false}
 

Ping-Bilgisayar-BilgisayarAdı’ DOESNOTMATTER ‘
}
}

Ayrıca, işlevi her blokta çalıştırdığımıza dikkat edin. Pester, bir anlamda, yürütmeyi “kaydetmek” ve nasıl çalıştığını yakalamaktır. İşlevin nasıl çalıştırıldığına karar verdikten sonra, artık işlevin gerçek çıktısını beklediğimizle karşılaştırmak için should anahtarını kullanabiliriz.

‘Ping-

Computer’u tarif edin {bilgisayar çevrimiçi olduğunda’ $ true’ı döndürmelidir ‘
 

{
mock’ Test-Connection ‘-MockWith {$ true}
 

Ping-Bilgisayar -ComputerName’ DOESNOTMATTER ‘| Gerçek, $ edilmelidir
}
 

{o bilgisayar çevrimdışı olduğunda $ return false gerekir ‘
sahte ‘Test-Bağlantı’ -MockWith {$ false}
 

Ping-Bilgisayar -ComputerName ‘DOESNOTMATTER’ | $ False olmalıdır
}
}

Bu test şimdi Pester modülünün içindeki Invoke-Pester komutunu kullanarak gerçekleşebilir. İki başarıyı döndürdüğünü görebilirsiniz.

PS> Invoke-Pester -Path C: \ Ping-Computer.Tests.ps1 Bilgisayar
 

açıkken Ping-Bilgisayar’ı tanımlamak
[+] true döndürmelidir 285ms
[+] bilgisayar çevrimdışıyken $ false döndürmelidir 144ms

PowerShell kodu PowerShell Kodumu Nasıl Test Edilir PowerShell komut
Share. Facebook Twitter Pinterest LinkedIn Tumblr WhatsApp Email
Önceki makalePowerShell kullanarak bir VM oluşturma
Sonraki Makale Test edilebilir PowerShell Kodunu Tasarlama
BESIR KURT

CodeTurkiye'nin seçkin yazarlarından biri olan Beşir Kurt, teknoloji ve yazılım dünyasına olan tutkusuyla tanınır. Gerek CodeTurkiye'deki yazılarıyla gerekse katıldığı paneller ve konferanslarla, teknoloji meraklılarına bilgi ve ilham kaynağı olmaktadır.

İlgili Mesajlar*

Disk alanı doldu ssh giriş yapılamıyor

25/02/2025

Google arama sonucundan bağlantı kaldırma

13/02/2025

404 Bulunamadı Nginx Hatası Nasıl Düzeltilir?

09/09/2024

Linux’ta Port Nasıl Açılır

21/06/2023
Cevap bırakın Cevabı İptal Et.

Facebook X (Twitter) Instagram Pinterest
  • Genel
  • Windows
  • Android
  • İphone
  • Mobil
  • İnternet
  • İOS
  • Oyunlar
  • Bilgisayar
  • Yazılım
  • iletisim

Yukarıya yazın ve aramak için Enter tuşuna basın. İptal etmek için Esc tuşuna basın.

Web sitemizde size en iyi deneyimi sunmak için çerezleri kullanıyoruz.

You can find out more about which cookies we are using or switch them off in .

Codeturkiye.com
Powered by  GDPR çerez uyumluluğu
Gizliliğe genel bakış

Bu web sitesi, size mümkün olan en iyi kullanıcı deneyimini sunabilmek için çerezleri kullanır. Çerez bilgileri tarayıcınızda saklanır ve web sitemize döndüğünüzde sizi tanımak ve ekibimizin web sitesinin hangi bölümlerini en ilginç ve yararlı bulduğunuzu anlamasına yardımcı olmak gibi işlevleri yerine getirir.

Kesinlikle gerekli çerezler

Çerez ayarları tercihlerinizi kaydedebilmemiz için kesinlikle gerekli çerezler her zaman etkin olmalıdır.