2012-08-26 14 views
9

VS2012'ye yükseltmeye çalıştığım bir VS2010 çözümüne sahibim.DeploymentItem, VS2010 ve VS2012'de farklı davranıyor

VS2012'deki MSTest birim testleri ile ilgili bir sorun yaşıyorum. Tüm testler, test sınıfındaki DeploymentItem niteliklerini içerir. 2010 yılında

[TestClass] 
[DeploymentItem(@"SubDir\SubDir2\models", "models")] 
public class UnitTests 
{ ... } 

, doğru SolutionDirectory\SubDir\SubDir2\models dizinden bağımlı dosyalar taklit ediyor. 2012 yılında

, testler eski davranışını geri yüklemek için bir yol arıyorum SolutionDirectory\UnitTests\bin\debug\SubDir\SubDir2\models

konuşlandırıldığı dizinden kopyalamak açılmaya çalışıldığını.

cevap

1

vs2012 ve .net 4.5'ı yükledikten sonra, deploymentitnattribute, dosyaları yürüttüğü ve yürütülebilir dosyanın testlerin yürütülmesi sırasında dosyaları aradığı yerle eşleşmiyor gibi görünüyor.

Ucuz geçici çözüm: Dosya

  • Değişikliği bu konumda
  • Önce bakmak için test kodu konumuna taşınıyor nerede

  • Bkz olduğu gibi-

    1. deploymentitemattribute yolunu bırakın Bu yükseltme mstest, bin dizinindeki bir alt dizine taşınmış olsa bile dağıtım öğelerini bulmak için yeterince akıllıydı. Artık böyle değil gibi görünüyor.

      şöyle görünebilir sizin birim test kod satırını yükseltme Yani önce ...

      FileInfo fi = new FileInfo("temp.txt"); 
      

      şöyle görünebilir sizin birim test kod satırını yükselttikten sonra ...

      FileInfo fi = new FileInfo("\SubDir\SubDir2\models\temp.txt"); 
      
  • +1

    Ne dediğini görüyorum. Ne yazık ki, geri yüklemeye çalıştığım testler "birim testleri" den daha fazla "entegrasyon" idi ve ikili yolun yolu başka bir yerde kodlanmıştı. "Ucuz çözümüm", projedeki dosyalara bağlantılar eklemeyi ve bunları oluşturmada kopyalamaya ayarlamayı içeriyordu. Daha sonra, "DeploymentItem" özniteliğimi yapı dizininden kopyalamak için değiştirdim. Çalışır, ancak daha büyük sorunu ele almaz. –

    4

    Çözümünüzde bir test ayarları dosyası oluşturursanız, dağıtımı etkinleştirin (varsayılan ayar, test ayarlarında kapalıdır) ve test gezgininde bunu seçin (Test -> Test Ayarları -> Test ayarları dosyası seç), o zaman kodu da değiştirmeden çalışmalıdır.

    +2

    Benim için işe yaradı :) VS 2010 projesine VS 2012, bunu yapana kadar benim test verilerini kopyalayamadım. – Cadab

    İlgili konular