MSTest dağıtım öğeleri tek proje mevcut ayarları dosyası test ne zaman çalışır?
MSTest dağıtım öğeleri yapılandırılması gerekiyor nasıl idrak edemiyorum. Ben mümkün onları almaya çalışan düzgün değiştirerek projenin test ayarları dosyası, ama bu daha az ideal -- dağıtım öğesi yapılandırma hücrelerin bireysel testler ve dosya yolları görünüyor saklı olarak mutlak yollar sürece dosyalar altında çözüm klasör.
Bir dağıtım ya da öğe üzerinde [DeploymentItem]
özniteliğini kullanarak ekleyebilmek için bir [TestClass]
[TestMethod]
oluşturmak zorunda kalmadan gereken/test ayarları dosyası bir proje değiştirmek değil miyim? Bunu nasıl başarırız?
(Açıkçası, ayrı bir dağıtım öğesi ihtiyacını neden sadece varolan 'Çıktı Dizini' dağıtım öğeleri olması gereken proje dosyaları için ayarları?) Kopyala yapılandırma anlamıyorum
CEVAP
Ok - this post here bana ne yapmam gerekeni anlamaya elle .testsettings
dosyasına öğeler eklemek zorunda KALMADAN yardımcı oldu.
Adım 1 - DeploymentItem
öznitelik MS Test sağlar.
İlk olarak, DeploymentItem
özniteliği etkinleştirmek / kapatmak için ihtiyacımız var.
GitTEST ->TEST AYARLARI - ^ DÜZENLEYİN . Geçerli Etkin ayarları .. örn :: Yerel (yerel.testsettings)
Şimdi gitDAĞITIMve emin olunDağıtım Etkinleştirin. canım sıkıldı. (Varsayılan olarak kapalı).
Adım 2 - Dosya özelliklerini Kontrol edin
Şimdi birim testi kullanmak istediğiniz dosyayı derlerken BİN dizinine kopyalanacak kurulduğundan emin olmalıyız. BİN dizininde olan dosyaları MS Testi birim testi olarak kullanılabilir. Neden? Her zaman MS bir Test koştu çünkü, kaynaklarının bir kopyasını yapmak için vardır ... ve bu, geçerli BİN bir kopyasını dizin dosyaları (geçerli Yapılandırma için tasarlanmıştır anlamına gelir.
Örneğin... Geçerli YapılandırmaHata ayıklamaBırakın karşıt olarak).
O zaman benim Dosya Ekle ... (Proje klasör yapısı dikkat edin)...
ve sonra bu dosyayı her ZAMAN proje derlenmiş bin dizinine kopyalanır emin olun.
PRO İPUCU: eğer aynı iseler bile Kopya her Zaman da işe yarar, ama her zaman copy kaynak hedef dosya üzerinde dosya... Bu Yeni Kopya yüzden tercih ediyorum ... ama whatever floats your boat
Tamam bayanlar ve baylar - hala orda mısın? Wikid.
Biz dosyayı şimdi Bin dir bulunması gereken bir derleme, ne zaman....
Adım 3 - Şimdi Deploymentİtem özniteliği kullanın
Tamam, şimdi nihayet bizim kod DeploymentItem
özniteliği kullanabilirsiniz. Bunu yaptığımızda, bu MSTest dosyası (konumunu bin dizinine göre) kopyalamak için yeni bir MS Test dizinine söyler...
[TestMethod]
[DeploymentItem(@"Test Data\100LogEntries.txt", "Test Data")]
public void Parsing100LogFileEntriesReturnsANewParsedLogEntriesWith100Items()
{
// Arrange.
const string fileName = @"Test Data\100LogEntries.txt";
ILogEntryService logEntryService = new PunkBusterLogEntryService();
// Act.
var parsedLogEntries = logEntryService.ParseLogFile(fileName, 0);
// Assert.
Assert.IsNotNull(parsedLogEntries);
Assert.AreEqual(100, parsedLogEntries.LogEntries.Count);
// Snipped the remaining asserts to cut back on wasting your time.
}
Yani bu aşağı.. Ara verelim
[TestMethod]
Biz ne olduğunu biliyoruz.
[DeploymentItem(@"Test Data\100LogEntries.txt", "Test Data")]
Başlangıç olarak bin dizinine gidip içine Test Data
klasör ve kopyalama 100LogEntries.txt
dosya için bir hedef klasörü Test Data
, kök MS Test çıktı dizini olan MS Test oluşturduğunda her bir test koştu.
Bu çıkış klasör yapısı gibi görünüyor. (Tüm karmaşa...) dilerim
ve voila! dağıtım dosyaları, programlama yoluyla.
U DeploymentItem
öznitelik 2. string bir değişken kullanmayın, bu dosya root OUT klasörüne kopyalanır sonra #2 - geçerli MS Test PRO İPUCU.
const string fileName = @"Test Data\100LogEntries.txt";
Şimdi dosya yolu geçerli MS Testi için OUT
klasörüne göre. Gibi, explicity dedimdağıtmakbir dizine dosya Test Data
... ben doğru dosyayı okumak istediğimde Şifremi başvuru emin olmak istiyorum bu yüzden aradım.
- ^Onaylamak için . dosya adı tam yolu mevcut MS Test için C:\lots of blah blah blah\My Solution\TestResults\PureKrome_PUREKROME-PC 2011-01-05 23_41_23\Out\Test Data
böyle bir şeye çevrilir.
HTH.
Şimdi bir tek boynuzlu at resmi, okumak için çok fazla :)
Ne zaman bir komut dosyası etiketi içi...
Çeşitli "eylem Oluştur&; Visual S...
Neden CSS sahte öğeleri ile çalışır?...
Nasıl saklamak için Node.js dağıtım ay...
Eclipse "Geçersiz Proje yeni proj...