Aşağıdakiler, bir test ayarları dosyası kullanmadan birden çok çözüme dahil edilen test projeleri için VS2012'de çalışır:
1) Dağıtmak istediğiniz dosyaları ve klasörleri test projesi dizinindeki bir klasöre yerleştirin.
2) Proje özelliklerinde, bir inşa sonrası adımı oluşturun
xcopy /Y /S /i "$(ProjectDir)<Project_Folder_Name>\*" "$(TargetDir)<Deployment_Folder_Name>"
$(ProjectDir)
ve $(TargetDir)
VS tarafından yorumlanacak makrolardır ve bu şekilde dahil edilmelidir.
<Project_Folder_Name>
1. adımda oluşturulan klasörün adıdır.
<Deployment_Folder_Name>
test dosyalarının dağıtılacağı klasörün adıdır ve aynı dizine birden çok test projesi dağıtıldığında benzersiz olacak şekilde adlandırılmalıdır, örn. <Project_Name>_TestInputs
.
Paylaşılan konumlardaki test dosyaları, test etkileşimlerini sınırlandırmak için hedef dizin dağıtım klasörüne de kopyalanmalıdır. $(ProjectDir)
Makroya göre kaynak yolunu sağlayın . Örneğin"$(ProjectDir)..\..\Common Files\C1219TDL-2008.xml"
.
3) Bir ekle [DeploymentItem(source, destination)]
Bir dağıtım dosyası (en iyi uygulama) kullanan her test yöntemine veya test sınıfına (tembel veya aceleci olanlar için daha kolay uygulama ve bir projeyi daha önce kullanılan göreceli yolları veya bir test ayarları dosyasını güncellemenin en kolay yolu) bir özellik ekleyin ).
Bir test yöntemi, source
yarattığı hedef dizine test yöntemi rölatif olarak kullanılan dosya veya dizinin yoludur xcopy
ve destination
bu dağıtım dizinine göre oluşturulacak dizine yoludur. Böylece testler, hedef dizinde veya bir dağıtım dizininde tutarlı çalışır. Hedef yol, dosya referansı olmayan kaynak yolla aynı olmalıdır. Örnek: [DeploymentItem("Example_TestInputs\C1219TDL-2008.xml","Example_TestInputs")]
. Bu DeploymentItem
dosya veya dizini kullanan her yönteme dahil edilmelidir.
Bir sınıfta source
ve destination
her ikisi de hedef dizinde oluşturulan klasörün adıdır.xcopy
; bu, sınıftaki herhangi bir test çalıştırıldığında tüm klasörü dağıtım dizinine kopyalar. Misal:[DeploymentItem("Example_TestInputs","Example_TestInputs")]
4) Test yöntemlerinde, artık dosyalara ve dizinlere, Visual Studio'nun o gün koymaya karar verdiği yere bakılmaksızın çalışma dizininde olacaklarına güvenle erişebilirsiniz, örn File.Exists(".\Example_TestInputs\C1219TDL-2008.xml")
.