2011-03-30 21 views
9

मैं MSTestMSTest विधानसभा

उपयोग कर रहा था नहीं मिल रहा है और मैं आदेश MSTest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll

और इस उत्पादन है,

का उपयोग चेतावनी:: टेस्ट रन तैनाती मुद्दा: विधानसभा या मॉड्यूल 'Microsoft.Practices

भागो निम्न समस्या है (हैं)। प्रिज्म 'सीधे या अप्रत्यक्ष रूप से परीक्षण कंटेनर' test.dll 'द्वारा संदर्भित नहीं किया गया था। चेतावनी: टेस्ट रन परिनियोजन समस्या: असेंबली या मॉड्यूल 'Project.Common.dll' सीधे या अप्रत्यक्ष रूप से परीक्षण कंटेनर 'test.dll' द्वारा संदर्भित नहीं किया गया था। चेतावनी: टेस्ट रन परिनियोजन समस्या: असेंबली या मॉड्यूल 'Project.Infrastructure.dll' सीधे या अप्रत्यक्ष रूप से परीक्षण कंटेनर 'test.dll' द्वारा संदर्भित नहीं किया गया था। चेतावनी: टेस्ट रन परिनियोजन समस्या: असेंबली या मॉड्यूल 'माइक्रोसॉफ्ट। व्यवहार। प्रिज्म 'सीधे या अप्रत्यक्ष रूप से परीक्षण कंटेनर' test.dll 'द्वारा संदर्भित नहीं किया गया था।

मैं क्या कर सकता हूं ताकि एमएसटीएस्ट अच्छी तरह से चल सके।

उत्तर

4

आप अपने बिल्ड सर्वर के जीएसी में प्रिज्म फ़ाइल इंस्टॉल कर सकते हैं।

+0

ओह धन्यवाद, मेरी समस्या का समाधान – aeruL

2

सभी असेंबली जिनका परीक्षण सीधे परीक्षण में नहीं किया जाता है, परीक्षण फ़ोल्डर में कॉपी नहीं किए जाएंगे। GAC को विधानसभा जोड़े बिना

[DeploymentItem("Microsoft.Practices.Prism.dll")] 

इस समस्या का हल: की वजह, उन परीक्षण तरीकों की तरह विशेषता के साथ सजाया जाना चाहिए।

+2

मुझे एक ही त्रुटि मिल रही है, और परियोजना जेनकींस में खरीद रही है। जेनकींस में अपने समाधान का उपयोग कैसे करें? चेतावनी: टेस्ट रन परिनियोजन समस्या: असेंबली या मॉड्यूल 'zlib.net' सीधे या परोक्ष रूप से परीक्षण कंटेनर 'डी: \ alm_jenprodslave_1 \ workspace \ कुल निधि \ alm \ otpp.pivot.core \ otpp.pivot.core.model द्वारा संदर्भित .test \ bin \ debug \ otpp.pivot.core.model.test.dll 'नहीं मिला था। –

+0

क्या यह दृष्टिकोण (केवल नाम का उपयोग करके) निश्चित रूप से काम करता है जब असेंबली जीएसी में नहीं है? मुझे समस्याएं हैं और इसके बजाय पूर्ण फ़ाइल पथ रखना पड़ा है। – Dib

0

ठीक है। परिनियोजन इटिम इसे ठीक करने का एक तरीका है। हालांकि, परिनियोजन इटैम थोड़ा नाजुक है।

यहां बताया गया है कि मैंने इसे कैसे ठीक किया।

"वर्तमान निर्देशिका" को परिनियोजन इटैम के साथ लाइन करना है। मैंने पाया सबसे अच्छा समझौता वर्तमान निर्देशिका को सेट करना होगा जहां .sln फ़ाइल है।

यहां मेरी फ़ोल्डर संरचना है।

C:\SomeRootFolder\ 
C:\SomeRootFolder\MySolution.sln 
C:\SomeRootFolder\packages\ 
C:\SomeRootFolder\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeThirdPartyDll.dll 
C:\SomeRootFolder\MyTestProject\MyTestProject.csproj 
C:\SomeRootFolder\MyTestProject\MyTestClass.cs 

MyTestClass.cs

[TestClass] 
public class MyTestClass 
{ 
    [TestMethod] 
    /* The DeploymentItem item below is for error ::: Warning: Test Run deployment issue: The assembly or module 'SomeDll' directly or indirectly referenced by the test container 'C:\SomeRootFolder\MyTestProject\bin\debug\MyTestProject.dll' was not found. */ 
    /* There must be a CD (to the .sln folder) command... before the MsTest.exe command is executed */ 
    [DeploymentItem(@".\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeDll.dll")] 
    public void MyTest() 
    { 
    } 
} 

"चाल" है कि .sln घरों फ़ोल्डर में एक सीडी (परिवर्तन निर्देशिका) करना है।

REM Now the normal restore,build lines 
nuget.exe restore "C:\SomeRootFolder\MySolution.sln" 
REM the above nuget restore would create "C:\SomeRootFolder\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeThirdPartyDll.dll" 
MSBuild.exe "C:\SomeRootFolder\MySolution.sln" /p:Configuration=Debug;FavoriteFood=Popeyes /l:FileLogger,Microsoft.Build.Engine;logfile=MySolution.Debug.Build.log 
REM (the below line is the trick to line up the 'current folder' with the relative path of the DeploymentItem) 
cd "C:\SomeRootFolder\" 
REM now the below will work without the annoying message, note that C:\SomeRootFolder\MyTestProject\bin\Debug\SomeThirdPartyDll.dll exists 
MsTest.exe /testcontainer:"C:\SomeRootFolder\MyTestProject\bin\Debug\MyTestProject.dll" /resultsfile:MyTestProject.Dll.Results.trx 

अब क्योंकि "वर्तमान निर्देशिका" (सीडी के परिणाम) पर है "C: \ SomeRootFolder \", DeploymentItem रिश्तेदार पथ सही ढंग से काम करता है।

जिमीनी क्रिकेट ....... वह थोड़ा सा पागल है।

ध्यान दें, पॉल टेलर यहाँ का जवाब

Running MsTest from the command line with a custom assembly base directory

मेरे लिए काम नहीं किया।

0

सबसे आसान तरीका। बस (अपने परीक्षण विधि की शुरुआत बिंदु पर) अपने कोड में

string value = AppDomain.CurrentDomain.BaseDirectory; 

जोड़ने नए जोड़े गए कोड को एक ब्रेकपाइंट जोड़ें और जाँच क्या value चर का मार्ग है।

परीक्षण प्रक्रिया जारी रखें और सबकुछ सफलता प्राप्त करने के बाद values चर के फ़ोल्डर पर नेविगेट करें।

आप फ़ोल्डर के अंदर सभी डीएलएस देख सकते हैं। बस उन्हें और पिछली वेयर कॉपी करें जो आप चाहते हैं और mstest कमांड लाइन टूल का उपयोग कर प्रोजेक्ट डीएल निष्पादित करें।

set mstestPath="C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE" 

%mstestpath%\mstest /testcontainer:CodedUITestProject1.dll 
संबंधित मुद्दे