Visual Studio 2017 yenilikleri arasında en önemli olarak gördüğüm Live Unit Testing. MSTest, nUnit veya xUnit ile yazılmış olan testleri, Visual Studio 2015 üzerinde daha önce Test Explorer penceresinden çalıştırıyorduk. Bu özellik Visual Studio 2017’de, Live Unit Testing özelliği eklenerek geliştirilmiş.
Testi yazılmış olan kodda değişiklikler yapıp, ardından testleri çalıştırarak açık olup olmadığını kontrol ederdik. Live Unit Testing sayesinde artık kodda yapılan her değişiklik ile testler otomatik çalışıyor ve görsel olarak bize başarılı, başarısız ve kapsanmayan testleri ilgili satırlar üzerinde gösterebiliyor. Bunun en büyük artısı, Dev Team artık kod yazdığı ekrandan uzaklaşmadan aşağıdaki sorulara anında ulaşıyor;
- Hangi satırlar testler tarafından kapsanmıyor?
- Yaptığım değişiklik başka bir yeri patlattı mı?
- Yaptığım değişiklik doğru sonuç alacak mı?
Dev Team performansı ve motivasyonu için önemli olduğunu düşündüğüm Live Unit Testing‘i kullanabilmek için aşağıdaki adımları izlemek yeterli.
Öncelikle Visual Studio 2017 kurulumu sırasında, opsiyonel özellikler arasından Live Unit Testing‘in seçili olduğuna emin olunması gerekiyor. Eğer kurulum sırasında seçili değilse, Visual Studio 2017 kurulumunu için kullanılan setup dosyası tekrar çalıştırılarak aktif hale getirilebilir.
Kurulum başarılı ise, içerisinde unit test projesi barındıran solution’ı açıp Test>Live Unit Test>Start seçiyoruz.
Live Unit Test’i Çalıştırmak İçin Önemli Bilgi
Live Unit Testing‘in çalışabilmesi için, test projesine, hangi test framework’ün kullanıldığına bağlı olarak, çeşitli referansların eklenmesi gerekiyor. Bu referanslar eklenmeden Live Unit Test>Start seçilirse, “No test adapters are referenced by this solution. If you have a test project, add a NuGet reference to a test adapter corresponding to the test framework used in order to run the tests. If you already have the required NuGet reference in your test project, performing a NuGet restore may resolve the issue.” şeklinde bir hata mesajı ile karşılaşılacaktır. Aşağıda test framework’lerine göre listelediğim referanslar eklendikten sonra Live Unit Test>Start seçildiğinde Live Unit Testing çalışmaya başlayacaktır.
MSTest test framework’ü kullanılıyorsa;
- MSTest.TestFramework 1.0.5-preview veya üstü
- MSTest.TestAdapter 1.1.4-preview veya üstü
nUnit test framework’ü kullanılıyorsa;
- NUnit version 3.5.0 veya üstü
- NUnit3TestAdapter version 3.5.1 veya üstü
xUnit test framework’ü kullanılıyorsa;
- xunit 2.0 veya üstü
- xunit.runner.visualstudio version 2.2.0-beta3-build1187 veya üstü
Yukarıda yer alan örnekte, bu demo için hazırlanmış bir User sınıfı yer almakta. Live Unit Testing çalışmaya başlayınca tüm kod satırlarının sol taraflarında işaretleri belirecek. Her bir işaretin anlamı aşağıdaki gibidir;
Hiç bir test metodu tarafından kapsanmayan satır. Code Coverage değerini düşürecektir.
Testlerden başarı ile geçen satır (passed).
Testlerde başarısız olan satır (failed).
Live Unit Test’i bir süre durdurmak veya kapatmak için, açmak için kullanılan menüden Pause veya Stop seçenekleri seçilebilir.
Visual Studio 2017 Professional Sürümünde Live Unit Testing Özelliği Kullanılabilir Mi?
Malesef bu özellik yalnızca Visual Studio 2017 Enterprise sürümü ile birlikte kullanılabiliyor.