2009-12-22 11 views
5

Bu benim senaryomdur, Veriye Dayalı bir birim testi yapmak istiyorum ve ortamdan bağımsız olmak için veri dosyasını meclise yerleştirmek istiyorum. Daha sonra Birim Testi'nin DataSourceAttribute dosyasında nasıl başvuru yapabilirim?Veriye dayalı birim testleri için gömülü bir veri dosyasına nasıl başvurabilirim?

Microsoft Jet OleDB Sağlayıcısı'nı kullanarak bir Excel 2003 dosyasına erişmeye çalışıyorum. Birim testi, dosya Sabit Sürücüdeyken iyi çalışır, ancak gömülü montaj dosyasına erişmeye çalıştığımda değil.

Orjinal

[DeploymentItem ("IHRM.Infrastructure.EFRepositories.Tests \ DataDriven.xls"), DataSource ("System.Data.OLEDB", "Provider = Microsoft.Jet: İşte benim örnek .OLEDB.4.0; Data Source = | DataDirectory | \ DataDriven.xls; "Özellikler = \ "\ Excel 8.0" Genişletilmiş, "Sayfa1 $", DataAccessMethod.Sequential), TestMethod]

Önerilen [DataSource ("System.Data.OleDb", "Sağlayıcı = Microsoft.Jet.OLEDB.4.0; Veri Kaynağı = "burada ne yazılır"; Genişletilmiş Özellikler = \ "Excel 8.0 \" "," Sheet1 $ ", DataAccessMethod.Sequential), DeploymentItem (" IHRM.Infrastructure.EFRepositories.Tests \ DataDriven.xls "), TestMethod]

+0

Wim'in önerisini uyguladınız mı? Varsa, bazı örnek kodları yayınlayabilir misiniz? –

cevap

2

JET OLEDB'nin, yerleşik kaynaklara dayalı veritabanlarına bağlanmak için destek kutusunun dışında olduğundan şüpheliyim. Gelen

1. özü kaynak

test en ClassInitialize, yapabilirsin bilinen bir yere extract the assembly resource: Bu sorunu gidermek için iki seçenek var. JET bağlantı dizenizdeki bu bilinen konuma bakın. Ayıklanan dosyayı sınamanın ClassCleanup'a tekrar temizleyin. Sen Kendi DbProviderFactory gömülü erişme destekler excel dosyaları yazma mümkün olabilir

2. yazma Kendi veri kaynağı. Mstest için keşfedilebilecek bir fabrika yapmak için, DbProviderFactories ile register your factory'a sahip olmanız gerekir.

mstest dahili olarak veri kaynaklarını nasıl işleyeceğini görmek için reflector ile Microsoft.VisualStudio.QualityTools.Common.dll takımını açmak ve Microsoft.VisualStudio.TestTools.Utility.TestDataConnection.Create dissassembling tarafından izi takip etmeye başlayın.

İlgili konular