2008-08-17 46 views
4

Visual Studio folder structureVisual Studio'da farklı klasörler/projelerdeki testleri nasıl çalışırım?

Visual Studio'da birim sınamaları ve tümleştirme sınaması için test işlemlerini nasıl kolayca ayırabileceğime dair biraz tavsiyeye ihtiyacım var. Genellikle ya da her zaman, yukarıdaki resimdeki gibi çözümü yapıyorum: ünite testleri ve entegrasyon testleri için ayrı projeler. Birim testler çok sık yürütülürken, uyum doğru bir şekilde hizalandığında entegrasyon testleri doğal olarak çalıştırılır.

Amacım, bir klavye kısayolu kullandığımda hangi testlerin (veya test klasörlerinin) çalışacağını bir şekilde yapılandırabilmektir. Testler tercihen bir grafik test koşucusu (ReSharpers) ile çalıştırılmalıdır. Yani, örneğin

  • Alt + 1 çalışır projesi BLL.Test içinde testleri,
  • Alt + 2 çalıştırır proje DAL.Tests içinde testleri,
  • Alt + 3
  • her ikisi (yani tüm testler onları çalıştırır [testler] klasör ve klasör [Tests.Integration] içinde
  • Alt + 4 çalıştırır testlerde. hakla sadece seçilen klasörde testi veya projeyi çalışan bir seçenek var TestDriven.net

-kullanarak ve Test Çalıştır (s) 'ı seçin. Bunu yapabilmek, ancak klavye komutu ve bir grafik test koşucusu ile harika olurdu.

TestDriven.net test run output

Şu anda VS2008, ReSharper 4 ve nUnit kullanın. Ama genel olarak bir kurulum için tavsiye elbette takdir edilmektedir.

cevap

2

Aslında bir makroya bağlı klavye komutunu kullanarak bunun için bir çözüm buldum. Makro, Araçlar> Makrolar> Record TemporaryMacro menüsünden kaydedildi. Kayıt yaparken [Testler] klasörümü seçtim ve ReSharpers UnitTest.ContextRun'u çalıştırdım. Bu daha sonra Araçlar> Seçenekler içinde kendi klavyesi komutuna bağlandı

Sub TemporaryMacro() 
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate 
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect) 
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun") 
End Sub 

> Çevre> Klavye, aşağıdaki makro sonuçlandı. Bununla birlikte, daha da harika olan şey, hangi projeleri/klasörleri/sınıfları tam olarak çalıştıracağım ve ne zaman tam olarak yapılandırabileceğimi daha genel bir çözümdür. Örneğin bir xml dosyası aracılığıyla. Bu, daha sonra sürüm kontrolüne kolayca kontrol edilebilir ve proje ile çalışan herkese dağıtılabilir.

0

Bu biraz karmaşık bir çözümdür, ancak çalıştırmak istediğiniz her bir grup test için external tools'u yapılandırabilirsiniz. ReSharper test koşusunu bu şekilde başlatabileceğinden emin değilim, ancak rahibin konsol versiyonunu çalıştırabilirsiniz. Bu araçların kurulumunu yaptıktan sonra, "Tools.ExternalCommand1", "Tools.ExternalCommand2", vb. Komutlarına klavye kısayolları atayabilirsiniz.

Bu gerçekten çok iyi ölçeklenmez ve değiştirmek zor olur - ancak Testlerinizi çalıştırmak için size klavye kısayolları verin. Bunu yapmanın çok daha basit bir yolu olmalı.

0

XML dosyasını ayrıştırmak için VS makrosu kullanabilir ve hangi sınıfları çalıştıracağını veya bir seçim kaydetme dosyası oluşturacağını ve bunu kullanarak rahibin çalıştırılacağını belirtmek için nunit.exe dosyasını/fixture komut satırı argümanı ile çağırabilirsiniz.

0

Bunu hiç kullanmadım ama belki yardımcı olabilir ....

http://www.codeplex.com/VS2008UnitTestGUI

"Proje Açıklaması Bu proje montaj Visual Studio 2008 ile kodlanmış çoklu NET Ünitesi testlerinin içindeki tüm birim testi çalıştıran ilgilidir "