Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 31285|Yanıt: 3

[Kaynak] .net/c# xunit birim testlerini kullanır

[Bağlantıyı kopyala]
Yayınlandı 22.01.2019 14:58:26 | | | |
Şu anda içerideyim. Net çerçevesi altındaki test araçları ağırlıklı olarak Nunit, yerleşik MSTest ve Xunit'ı içerir ve bu makalede VS'nin yükselen yıldızı XUnit'in nasıl kullanılacağını kısaca tanıtacak.

xunit'in desteklediği minimum çalışma süresi . NET 4.5.2, çoğu daha yüksektir. 4.0 sınıf kütüphanesi oluşturabilseniz bile, en azından .NET 4.5.2'de yine de çalışacaktır. Detaylı bağlantılar:https://github.com/xunit/xunit/issues/1817


İlk olarak, itsvse-test adıyla yeni bir .NET 4.5.2 konsol projesi oluşturdum ve xunit'ın en son sürümü: 2.4.1, yani nuget komutu şöyle:

Her paket, sahibi tarafından size lisanslanır. NuGet, üçüncü taraf paketlerden sorumlu değildir ve bunları lisanslamıyor. Bazı paketler, diğer lisanslara bağlı bağımlılıklar içerebilir. Bağımlılıkları belirlemek için paket kaynağı (kaynak) URL'sine tıklayın.

Package Manager konsol host sürüm 4.7.0.5212

Tüm mevcut NuGet komutlarını görmek için "get-help NuGet" yazın.

PM> Kurulum-Paketi xunit -Sürüm 2.4.1


"Toplama ve hedef almak için girişimler yapılıyor". NETFramework, Version=v4.5.2" projesinin "itsvse-test" paketi hakkında "xunit.2.4.1" paketi hakkında
Bağımlılık bilgisi toplamak 2.1 saniye sürer
"xunit.2.4.1" paketinin bağımlılığını DependencyBehavior ile "En Düşük" olarak çözmeye çalışıyorum
Bağımlılık bilgisini ayrıştırmak 0 ms sürer
"xunit.2.4.1" paketini kurmak için ayrıştırma işlemi
"xunit.2.4.1" paketini yüklemek için çözüm işlemi
"cnblogs"dan "xunit 2.4.1" paketini alın
"cnblogs"dan "xunit.abstractions 2.0.3" paketini alın
"cnblogs"dan "xunit.analyzers 0.10.0" paketini alın
"cnblogs"dan "xunit.assert 2.4.1" paketini alın
"cnblogs"dan "xunit.core 2.4.1" paketini alın
"cnblogs"dan "xunit.extensibility.core 2.4.1" paketini alın
"cnblogs"dan "xunit.extensibility.execution 2.4.1" paketini alın
  ALhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  ALhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  ALhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  ALhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  ALhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  ALhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  ALhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg
  TAMAMhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg116 ms
  TAMAMhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117 ms
xunit.abstractions 2.0.3 kurulumu.
xunit 2.4.1 yüklüyor.
  TAMAMhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 ms
xunit.core 2.4.1 kurulumu.
  TAMAMhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 ms
xunit.assert 2.4.1 yükleniyor.
  TAMAMhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 ms
xunit.extensibility.core 2.4.1 kurulumu.
  TAMAMhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 ms
xunit.analyzers 0.10.0 yükleniyor.
  TAMAMhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 ms
xunit.extensibility.execution 2.4.1 yükleniyor.
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne "xunit.abstractions.2.0.3" paketi ekleniyor
"xunit.abstractions.2.0.3" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"packages.config" dosyasına "xunit.abstractions.2.0.3" paketi eklendi
"xunit.abstractions 2.0.3" itsvse-test'e başarıyla yüklendi
"itsvse-test"e sadece araç seti paketi "xunit.analyzers.0.10.0" ekleniyor
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne "xunit.analyzers.0.10.0" paketi ekleniyor
"xunit.analyzers.0.10.0" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"packages.config" sayfasına "xunit.analyzers.0.10.0" paketi eklendi
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1" betik dosyası
"xunit.analyzers 0.10.0" itsvse-testine başarıyla yüklendi
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne "xunit.assert.2.4.1" paketi ekleniyor
"xunit.assert.2.4.1" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"packages.config"e "xunit.assert.2.4.1" paketi eklendi
"xunit.assert 2.4.1" itsvse-testine başarıyla yüklendi
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne "xunit.extensibility.core.2.4.1" paketi ekleniyor
"xunit.extensibility.core.2.4.1" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"packages.config" sayfasına "xunit.extensibility.core.2.4.1" paketi eklendi
"xunit.extensibility.core 2.4.1" itsvse-testine başarıyla yüklendi
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne "xunit.extensibility.execution.2.4.1" paketi ekleniyor
"xunit.extensibility.execution.2.4.1" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"packages.config" sayfasına "xunit.extensibility.execution.2.4.1" paketi eklendi
"xunit.extensibility.execution 2.4.1" itsvse-testine başarıyla yüklenmiştir
"C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne "xunit.core.2.4.1" paketi ekleniyor
"xunit.core.2.4.1" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"packages.config"e "xunit.core.2.4.1" paketi eklendi
"xunit.core 2.4.1" itsvse-testine başarıyla yüklendi
"itsvse-test" projesine yalnızca bağımlılıklarla "xunit.2.4.1" paketi ekleniyor.
"xunit.2.4.1" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne ekleniyor
"xunit.2.4.1" paketi "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages" klasörüne eklenmiştir
"xunit.2.4.1" paketi "packages.config" sayfasına eklenmiştir
"xunit 2.4.1" itsvse-testine başarıyla yüklendi
Nuget'in uygulanması 5.51 saniye sürdü
Geçilen Süre: 00:00:07.7781544
PM>
Eklenti paketlerini yükleyin: xunit.runner.console (bu makalede yer almıyor) ve xunit.runner.visualstudio

burada xUnit çerçevedir,Ve xunit.runner.visualstudio ise VS eklenti paketidir, böylece VS'de kolayca hata ayıklama yapabiliriz.xunit.runner.console kurulumu da CMD altında hata ayıklaması mümkünAma sadece bu desteklense, pek az kişinin bu framework'ü kullanacağını düşünüyorum, sonuçta komut yazma şekli Visual Studio'nun kalitesini ciddi şekilde düşürüyor, bu yüzden burada açıklamayacağım.

Burada sadece xunit.runner.visualstudio eklenti paketini yüklüyoruz, Çözüm Rehberi'nde projeye sağ tıklayıp Manage NuGet Packages'ı seçiyoruz. xunit.runner.visualstudio adlı bir paketi arayın (ve kurun) :



Test tarayıcısının görünür olduğundan emin olun (Test > penceresine > Test Explorer'a gidin). Her proje inşa edildiğinde, koşucu projede birim testlerini keşfeder. Bir süre keşfettikten sonra, keşfedilen testlerin listesini görmelisiniz:



Program dosyasını düzenleyin ve aşağıdaki kodu değiştirin:

Hepsini çalıştır penceresindeki bağlantıya tıklayın, testi çalıştırdığınızda Test Explorer penceresinde sonuç güncellemesini görmelisiniz:



Başarısız teste tıklayarak arıza mesajını ve stack trace'i görebilirsiniz. Stack iz satırına tıklayarak doğrudan başarısız kod satırına gidebilirsiniz.

(Son)





Önceki:Sleep Your Sister Alarm Clock v4.6.1 Profesyonel Ücretli Premium Çin Versiyonu
Önümüzdeki:Bugünün C# Çalışma Notları
 Ev sahibi| Yayınlandı 22.01.2019 15:19:24 |
Xunit'in test sınıflarını etiketlemesine gerek yok

xUnit hem [Gerçek] hem de [Teori] özelliklerini destekler. Koddan da görebileceğiniz gibi, [Fact] yazdığımız gerçek çağrı koduna benzerken, InlineData ile [Theory] birden fazla parametre setini doğrudan tek bir yöntemde test edebilir.

 Ev sahibi| Yayınlandı 22.01.2019 15:31:55 |
Anomali testi

Xunit, istisna yakalamaları Attributes üzerinden işaretlemez, ancak istisnaları doğrulamak için doğrudan Assert.Throws doğrulama fonksiyonunu kullanır.

    public class TestClass1
    {
        [Gerçek]
        public void testException()
        {
            <InvalidOperationException>Assert.Throws(() => operation());
        }

        boşluk operasyonu()
        {
            yeni InvalidOperationException() at;
        }
    }



Test vakası adını değiştirin:

     [Fact(DisplayName = "Maksimum Fonksiyon Testi")]



Test vakalarını atlayın:

     [fact(skip="refactoring tamamlanmamış")]



Gruplama:

     [Özellik("Grup", "Kategori")]
 Ev sahibi| Yayınlandı 22.01.2019 15:37:28 |
Birçok durumda, birim testlerinin veritabanındaki içeriği etkilemesini istemeyiz ve bazen veritabanının etkisi nedeniyle birim testlerimiz çok yavaş olur, bu yüzden genellikle süreklilik kısmını izole etmek isteriz ve birim testleri yaparken veriyi gerçekten kalıcı tutmayız. Bu tür izolasyon Genellikle soyutlama kullanırız, yani persistence katmanını izole etmek için arayüzler veya soyut sınıflar kullanırız ve ardından karşılık gelen arayüzleri veya soyut sınıfları simüle etmek için mocklar kullanarak karşılık gelen persistence sınıflarını tamamlarız. MoQ, bu Mock çerçevelerinden biridir, MoQ C# 3.0 kullanır, bu NMock'tan daha kolay ve güçlü bir tipli yöntemdir ve kaynak kodu ile dll ulaşılabilirBağlantı girişi görünür.İndir. MoQ'nun en son sürümü şu anda 3.1 sürümünde ve 4.0 hâlâ beta sürümünde.
https://www.cnblogs.com/catcher1994/p/5498530.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com