Visual Studio’da Unit Testlerin Basitleştirilmesi: Farklı Klasörlerde ve Projelerde Testleri Çalıştırma Rehberi

Unit testleri, bireysel bileşenlerin büyük bir sisteme entegre edilmeden önce beklenildiği gibi çalışmasını sağlamak için modern yazılım geliştirmede önemli bir unsurdur. Visual Studio gibi ortamlarda, genellikle birim testleri ve entegrasyon testleri için ayrı projeler oluşturulur. Bu yapı, özellikle belirli klasörlerde veya projelerde testleri hızla çalıştırmak istediğinizde testlerin çalıştırılmasını karmaşık hale getirebilir. Bu yazıda, projenizin klasör yapısına dayalı olarak unit testlerinizi çalıştırmanın bir yolunu, klavye kısayolları ve makrolar yardımıyla daha verimli hale getireceğiz.

Zorluk

Birçok geliştirici, Visual Studio çözümlerini birim testleri ve entegrasyon testleri için belirgin projelerle yapılandırır. Bu durum, test çalıştırmalarını yönetmek için net bir strateji oluşturma gereksinimi doğurur; örneğin:

  • Birim testlerini sık sık çalıştırmak.
  • Entegrasyon testlerini yalnızca belirli bağlamlarda çalıştırmak.

Amacınız, her seferinde menülerden geçmeden farklı projelerde testleri çalıştırmak için klavye kısayollarını yapılandırmak olabilir. Örneğin, şunları başarmak isteyebilirsiniz:

  • Alt+1: BLL.Test projesindeki testleri çalıştırır.
  • Alt+2: DAL.Tests projesindeki testleri çalıştırır.
  • Alt+3: [Tests] klasöründeki tüm testleri çalıştırır.
  • Alt+4: [Tests.Integration] klasöründeki testleri çalıştırır.

Neyse ki, bu süreci Visual Studio’da daha akıcı hale getirmenin bir yolu var.

Makroları Kullanarak Pratik Bir Çözüm

Visual Studio’da belirli projelerde veya klasörlerde testleri run etmek için basit bir klavye komutu ile çalıştırmanızı sağlayan bir makro oluşturabilirsiniz. İşte nasıl ayarlanacağına dair adım adım talimatlar:

Makro Oluşturma Adım Adım Talimatlar

  1. Visual Studio’yu Açın: Visual Studio ortamınızı başlatın.

  2. Geçici Bir Makro Oluşturun:

    • Menüden: Tools > Macros > Record TemporaryMacro seçeneğine gidin.
    • Bu, eylemlerinizi kaydetmeye başlayacaktır.
  3. Test Klasörünüzü Seçin:

    • Çözüm Gezgini’nde [Tests] klasörünü (veya istediğiniz test klasörünü) seçin.
  4. Testleri Çalıştırın:

    • ReSharper kullanarak testleri çalıştırmak için komutu çalıştırın: ReSharper.UnitTest.ContextRun.
  5. Kaydı Durdurun:

    • İşlem tamamlandığında Tools > Macros menüsüne geri gidin ve kaydı durdurun.
  6. Makroyu Düzenleyin:

    • Kayıtlı makronuzu Tools > Macros > MyMacros altında bulabilirsiniz.
    • Belirli test klasörünüzü çalıştırmak için ihtiyacınıza göre düzenleyin.

Kayıtlı Bir Makro Örneği

İşte özel projede yapılandırmanıza göre ayarlayabileceğiniz bir makro kodunun örneği:

Sub TemporaryMacro()
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun")
End Sub
  1. Makroyu Bir Klavye Kısayoluna Bağlayın:
    • Tools > Options > Environment > Keyboard seçeneğine gidin.
    • Listede makronuzu bulun ve ona bir klavye kısayolu atayın.

Daha Genel Bir Yaklaşım: Yapılandırma Dosyaları ile

Yukarıdaki yöntem testleri çalıştırmak için sağlam bir çözüm sunarken, daha ölçeklenebilir bir yaklaşım düşünürseniz daha iyi olabilir. Hangi projeleri, klasörleri veya sınıfları çalıştırmak istediğinizi bir XML dosyası aracılığıyla yapılandırabilmeyi hayal edin. Bu, şunları yapabilir:

  • Sürüm kontrolünü kolaylaştırır.
  • Ekibinizdeki herkesin aynı test yürütme sürecini takip etmesini sağlar.

XML Yapılandırmasının Faydaları

  • Tutarlılık: Tüm geliştiriciler aynı yapılandırmaları paylaşabilir.
  • Esneklik: Test hedeflerini kodu değiştirmeden kolayca düzenleyebilirsiniz.
  • Basitlik: Ekibinizdeki geliştirici olmayan kişiler, VS IDE’ye girmeden test ayarlarını ekleyebilir veya değiştirebilir.

Sonuç olarak, Visual Studio içerisinde makroları kullanarak ve muhtemelen yapılandırma dosyaları ekleyerek geliştirme iş akışınızı önemli ölçüde geliştirebilirsiniz. Bu sistem, yalnızca zaman tasarrufu sağlamakla kalmaz, aynı zamanda ekibinizin test çalıştırmalarını zahmetsiz bir şekilde yönetmesini de garanti eder. Artık belirli testleri yalnızca bir klavye kısayolu kullanarak çalıştırabilme yeteneği ile daha fazla kod yazmaya odaklanabilir ve IDE’nizde gezinmeye daha az zaman harcayabilirsiniz.