MSTest का उपयोग करके DeploymentItemAttribute का सापेक्ष पथ रूट क्या है।परिनियोजन ItemAttribute के सापेक्ष पथ रूट क्या है?
उत्तर
प्रति MSDN पेज ...
संबंधित पथ RelativePathRoot .testrunconfig फ़ाइल में पाए सेटिंग के सापेक्ष हैं।
यह सेटिंग डिफ़ॉल्ट रूप से समाधान निर्देशिका है। इसलिए, यदि आप इस परियोजना संरचना
SecretProject\
ComponentA\
ComponentA.Test\
Resources\
required.xml
ComponentA.Test.csproj
Tests.cs
SecretProject.sln
है और तुम required.xml, तो आप इस
[TestClass]
public class Tests
{
[TestMethod]
[DeploymentItem("ComponentA.Test\Resources\required.xml")]
public void Test()
{
}
}
की तरह एक DeploymentItemAttribute बनाने जा रहे हैं तैनात करने के लिए चाहते हैं यह फ़ाइल गुण की जरूरत है लगता है 'सामग्री' और 'पर हमेशा सेट करें' या 'नई अगर कॉपी करें' पर सेट करें। this MSDN page पर उन्नत उदाहरण हैं।
यह मानने के लिए कि सापेक्ष पाथ रूट डिफ़ॉल्ट डीआईआर है जहां आपका समाधान रहता है, मेरे मामले में सही नहीं था, और न ही RelatePathRoot को मेरी .testrunconfig फ़ाइल में परिभाषित किया गया था। मैंने रिलेवेटपाथ रूट को समाधान के लिए/bin/debug dir होने के लिए डिफ़ॉल्ट पाया।
उस बिंदु से वापस घूमना, फिर मेरी फ़ाइल तक चलना कि मैं इकाई परीक्षण के लिए तैनाती करने का प्रयास कर रहा था ठीक काम किया।
तो मैं अपना अनुभव जोड़ूंगा।
तो यदि आप .testrunconfig फ़ाइल का उपयोग कर रहे हैं, तो मैं नीचे जो कह रहा हूं उसे ट्रम्प (ओवरराइड) कर देगा।
मुझे लगा कि कुछ विकल्प थे।
वर्तमान .csproj के सापेक्ष
.sln के सापेक्ष
सापेक्ष करने के लिए वर्तमान .cs फ़ाइल
मैं अंत में "का उपयोग करके काम कर अपने निर्माण प्रणाली मिला वर्तमान .cs फ़ाइल "दृष्टिकोण के सापेक्ष।
मेरे उदाहरण में, मुझे अपने यूनिटटेस्ट के लिए कॉपी की गई एक अलग परियोजना से एक्सएसडी की आवश्यकता थी। लेकिन फ़ाइल का प्रकार कोई फर्क नहीं पड़ता।
उदाहरण:
c: \ MyFolder \ MyXsdProject \ XSDs \ MyCoolXsd.xsd
c: \ MyFolder \ MyCsharpUnitTestProject \ MySubFolder1 \ MySubFolder2 \ MyUnitTestClass।सीएस
namespace MyCsharpUnitTestProject.MySubFolder1.MySubFolder2
{
[TestClass]
[DeploymentItem(@"..\..\..\MyXsdProject\XSDs\MyCoolXsd.xsd")]
public class MyUnitTestClass
{
}
}
"ऐसा लगता है फ़ाइल गुण 'सामग्री' और 'हमेशा की प्रतिलिपि' या 'कॉपी करता है, तो नए' पर सेट किया जाना चाहिए।" आपको आश्चर्य होगा कि यह कितना मुश्किल था ... – SouthShoreAK
@SouthShoreAK - यह कहां मिला? –
@ScottLangham यह तैनाती आइटम के फ़ाइल गुणों में है। 'समाधान एक्सप्लोरर' में आपको फ़ाइल को हाइलाइट करने की आवश्यकता है (इस मामले में 'required.xml'), राइट क्लिक करें और गुण चुनें। आपको इसे वहां देखना चाहिए। – dpimente