Codeturkiye.com
  • Mobil
    • Android
    • İphone
    • İOS
  • WordPress
  • İnternet
  • Genel
  • Bilgisayar
    • Windows
    • Yazılım
  • iletisim
    • iletisim
    • Hakkımızda
    • Amacımız Ne-Neler Yapıyoruz?
    • Neden Sitemize Uğramalısınız Bu Size Ne Katacak?
    • Bizi Diğer Teknoloji Sitelerinden Ayıran Özellik Ne
teset

Android Cihazlarda Klavye Rengini Değiştirmek

07/06/2023

Game of Thrones Haneleri

07/06/2023

Android Ses Yükseltme Programları

07/06/2023

Fallout 4 Türkçe Yama Nasıl Kurulur

07/06/2023
Facebook Twitter Instagram
Facebook Twitter Instagram
Codeturkiye.com
Subscribe
  • Mobil
    • Android
    • İphone
    • İOS
  • WordPress
  • İnternet
  • Genel
  • Bilgisayar
    • Windows
    • Yazılım
  • iletisim
    • iletisim
    • Hakkımızda
    • Amacımız Ne-Neler Yapıyoruz?
    • Neden Sitemize Uğramalısınız Bu Size Ne Katacak?
    • Bizi Diğer Teknoloji Sitelerinden Ayıran Özellik Ne
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*

NVIDIA Driver Eski Sürümü Geri Yükleme

28/05/2023

Linux Cihazda Yer Kalmadı Hatası

18/01/2023

AnyDesk vs TeamViewer Karşılaştırması

30/04/2022

Windows 10’da Yazıcı Adı Nasıl Değiştirilir

03/03/2021

Cevap bırakın Cevabı İptal Et.

  • Facebook
  • Twitter
  • Instagram
İlginizi Çekeblir
Android

Android Cihazlarda Klavye Rengini Değiştirmek

By BESIR KURT07/06/20230

Android, kullanıcılara bir dizi kişiselleştirme seçeneği sunar, bunlardan biri de klavye rengini değiştirmektir. Kullanıcıların yazım…

Game of Thrones Haneleri

07/06/2023

Android Ses Yükseltme Programları

07/06/2023

Fallout 4 Türkçe Yama Nasıl Kurulur

07/06/2023

Güncellemelere Abone Ol

Facebook Twitter Instagram Pinterest
© 2023 ThemeSphere. Designed by ThemeSphere.

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