2009-05-30 18 views
7

Birim Testlerini (en yüksek) çalıştırmayı denediğimde, bu sorunla karşılaşıyorum. kod
hattı:app.configs ve MSTest Project - bir bağlantı dizesi için null başvurusu

_mainCnStr = System.Configuration.ConfigurationManager. 
       ConnectionStrings["main"].ConnectionString; 

geri null başvuru

olarak gelir bunu çalıştırdığınızda ana UI projesinde bu yapmaz. Unit Test projesi tarafından görülen bu bağlantı dizesi ayarını elde etmek için doğru yöntem nedir? Kaynak olarak gömülü olarak denedim. Her Zaman Kopyalamayı denedim. Bunu benim için çözecek ayarların doğru kombinasyonu nedir?

cevap

8

Birim test projesine bir app.config eklemelisiniz. UI uygulamasının app.config içindeki ayarları otomatik olarak kullanmayacaktır.

+0

Yapılandırmamı derleme içine yerleştirmemeliyim. Bunu daha önce görmüştüm. – BuddyJoe

+0

huh. Kopyaladım hala bir hatayı alıyorum. garip – BuddyJoe

+0

Test projesine sağ tıklayın, bir "Uygulama Yapılandırma Dosyası" ekleyin ve içeriği kopyalayın. Çalışmalı ... –

0

Test uygulamaları tarafından yüklenen ayrı bir montajda gömülü rahibe testleri gibi en yüksek değerler olduğunu mu varsayıyorum? Bu durumda, yapılandırma dosyasında yüklenen bazı test kurulum kodları oluşturmanız gerekebilir.

9

MSTest ile seyretmek için bir şey (en azından IDE'den); Testleri normal çıkış (bin) klasöründe çalıştırmaz ve projenin dosya kapanımlarına ("Çıkış Dizini'ne Kopyala") uymaz. Test alanına hangi dosyaların konacağını (MSTest) açıkça belirtmeniz gerekir. Bu listede "app.config" eklemeniz gerekecek; ya testrunconfig ("Deployment") aracılığıyla veya etkilenen test donanımlarına bir nitelik ([DeploymentItem]) ekleyerek.

+2

DeploymentItem ("db.config") test sınıfının üstüne yerleştirildikten sonra çalıştı! Teşekkürler. – Jirapong