2012-08-26 18 views
9

में अलग तरह से व्यवहार कर मैं एक VS2010 समाधान है कि मैं VS2012 को उन्नत करने के लिए कोशिश कर रहा हूँ है।DeploymentItem VS2010 और VS2012

मैं VS2012 में MSTest इकाई परीक्षण के साथ एक समस्या हो रही है। सभी परीक्षणों में टेस्ट क्लास पर डिप्लॉयमेंट इटैम विशेषता शामिल है।

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

2010 में, यह सही ढंग से SolutionDirectory\SubDir\SubDir2\models निर्देशिका से निर्भर फ़ाइलों को कॉपी कर रहा है।

2012 में, यह निर्देशिका जहां परीक्षण तैनात किया गया है SolutionDirectory\UnitTests\bin\debug\SubDir\SubDir2\models

मैं एक तरह से पुराने व्यवहार को बहाल करने के लिए देख रहा हूँ से नकल करने का प्रयास कर रहा है।

उत्तर

1

बनाम2012 और .NET 4.5 स्थापित करने के बाद, लगता है कि परिनियोजनिटैमेट्रिब्यूट सिंक्रनाइज़ेशन से बाहर है, जहां यह फ़ाइलों को स्थानांतरित करता है और जहां निष्पादन योग्य परीक्षणों के निष्पादन के दौरान फ़ाइलों को देखता है।

सस्ते वैकल्पिक हल:

  1. deploymentitemattribute पथ छोड़ दो के रूप में है
  2. देखें जहां फ़ाइल
  3. बदलें परीक्षण कोड है कि स्थान

से पहले में देखने के लिए के लिए ले जाया जा रहा है यह अपग्रेड mstest तैनाती आइटम खोजने के लिए पर्याप्त स्मार्ट था, भले ही वे बिन निर्देशिका में किसी उप निर्देशिका में स्थानांतरित हो गए हों। ऐसा लगता है कि यह अब मामला नहीं है।

तो इससे पहले कि आपके इकाई परीक्षण कोड इस प्रकार दिखाई देंगे की एक पंक्ति का उन्नयन ...

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

अपने इकाई परीक्षण कोड इस प्रकार दिखाई देंगे की एक पंक्ति अपग्रेड करने के बाद ...

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

मैं तुम्हें क्या कह रहे हैं देखते हैं। दुर्भाग्यवश, जिन परीक्षणों को मैं पुनर्स्थापित करने की कोशिश कर रहा था वे "यूनिट परीक्षण" से अधिक "एकीकरण" थे, और बाइनरी के पथ को कहीं और कोडित किया गया था। मेरे "सस्ते वैकल्पिक हल" परियोजना में फ़ाइलों के लिंक बनाने और निर्माण पर कॉपी करने के लिए उन्हें स्थापित करने, तो मैं संशोधित मेरी "DeploymentItem" का निर्माण निर्देशिका से कॉपी करने के लिए विशेषता शामिल किया गया। काम करता है, लेकिन बड़े मुद्दे को संबोधित नहीं करता है। –

4

आप एक परीक्षण सेटिंग्स अपने समाधान में फ़ाइल बनाते हैं, तो उस में तैनाती (डिफ़ॉल्ट तैनाती कर रहा है परीक्षण सेटिंग में बंद) को सक्षम और परीक्षण एक्सप्लोरर में उसका चयन करें (टेस्ट -> टेस्ट सेटिंग्स -> परीक्षण करें सेटिंग्स फ़ाइल), तो इसे कोड को बदलने के बिना भी काम करना चाहिए।

+2

वी.एस. 2012 तक मेरे लिए काम किया :) VS 2010 परियोजना, मेरे testdata की प्रतिलिपि जब तक मैं ऐसा किया एकदम चमक। – Cadab