2013-03-11 13 views
9

पिछले कुछ घंटों के लिए मैं सिल्वरलाइट एप्लिकेशन के लिए यूनिट टेस्ट जेनरेट करने की कोशिश कर रहा हूं।सिल्वरलाइट 5 वीएस 2012 यूनिट टेस्ट

कई पदों में "सिल्वरलाइट यूनिट टेस्ट प्रोजेक्ट" का संदर्भ दिया गया है जो सिल्वरलाइट टूलकिट का हिस्सा है। लेकिन मैंने टूलकिट डाउनलोड किया और अभी भी टेस्ट प्रोजेक्ट नहीं है, ऐसा लगता है कि यह केवल वीएस 2010 में उपलब्ध है?

मैं एक "सिल्वरलाइट कक्षा लाइब्रेरी" परियोजना जोड़ा गया है और के लिए संदर्भ जोड़ लिया है:

  1. Microsoft.Silverlight.Testing
  2. Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight

और निम्नलिखित TestClass:

using Microsoft.Silverlight.Testing; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 

namespace UnitTesting 
{ 
    [TestClass] 
    public class Class 
    { 

     [TestMethod] 
     public void TestMethod() 
     { 
      .....  
     } 
    } 
} 

लेकिन वहाँ विजुअल स्टूडियो द्वारा कोई परीक्षण नहीं किया जा रहा है 2012 टेस्ट एक्सप्लोरर। समाधान के पुन: निर्माण और आवेदन के पुनरारंभ करने के बाद भी।

किसी के पास कोई विचार है? क्या यह भी संभव है?

+0

प्रयास करें संपादित csproj फ़ाइल और टैग निम्नलिखित जोड़ने ' {3AC096D0-A1C2-E12C-1390-A8335801FDAB} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}' 'के बाद ProjectGuid' – sll

+0

प्रोजेक्ट वीएस के पुनरारंभ पर लोड नहीं होगा :( –

उत्तर

1

मैं, विश्वास है कि आप टेस्ट एक्सप्लोरर में दिखाने के लिए सिल्वरलाइट यूनिट टेस्ट एडाप्टर स्थापित करने के लिए परीक्षण प्राप्त करने की आवश्यकता

+2

परीक्षण अपवादकर्ता 'टेस्टडिस्कोवरर' परीक्षण लोड कर रहा था, जबकि एक अपवाद हुआ। अपवाद: फ़ाइल या असेंबली 'माइक्रोसॉफ्ट.Silverlight.Testing, संस्करण = 5.0.5.0, संस्कृति = तटस्थ लोड नहीं हो सका, PublicKeyToken = 31bf3856ad364e35 'या इसकी निर्भरताओं में से एक है। सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता है। –

+1

वैश्विक असेंबली –

+1

पर आवश्यक फ़ाइल जोड़ने के लिए प्रबंधित किया गया अद्यतन: परीक्षण चलाना लेकिन परीक्षण केवल Asssert के साथ पूरा नहीं हो रहा है। अचूक (सत्य, सत्य); –

4

इस सूत्र को पूरा करने के

सिल्वरलाइट डीएलएलएस सी: \ प्रोग्राम फ़ाइलें (x86) \ माइक्रोसॉफ्ट एसडीके \ सिल्वरलाइट \ v5.0 \ Toolkit \ dec11 \ परीक्षण

में स्थित हैं मैं परीक्षण चलाने के लिए Resharper 7.1 नहीं मिला लेकिन this library मदद की। आपको 7-ज़िप का उपयोग करके निकालने की आवश्यकता होगी ताकि डीएलएलएस अवरुद्ध न हों। फिर विजुअल स्टूडियो 2012 को पुनरारंभ करें और Resharper आपके यूनिट परीक्षण चलाएगा।

5

यह लिंक जवाब यह है कि मेरे लिए काम किया है:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/5e991b0d-8061-4c4e-a17d-82b4abd58d6c/vs-2012-silverlight-unittest

I recommend starting a new Silverlight project and installing the SilverlightToolkit-Testing NuGet package. In your test files, put in usings for Microsoft.Silverlight.Testing and Microsoft.VisualStudio.TestTools.UnitTesting and use regular [TestClass] and [TestMethod] attributes. To run them, you can use the Toolkit test runner by putting RootVisual = UnitTestSystem.CreateTestPage(); in your App.Application_Startup(), use Silverlight Unit Test Adapter (which currently is at v0.0.1 and doesn't really work), or (the best approach by far) install ReSharper and the AgUnit plugin.

1

मैं कुछ परीक्षण चलाने के लिए सक्षम था:

  1. को देखते हुए Visual Studio 2012 प्रोफेशनल (परीक्षण धावक के साथ)।

  2. क्लास लाइब्रेरी लक्ष्यीकरण .NET 4.5 को MyProject.Tests जैसे नाम के साथ बनाएं।

  3. संदर्भ C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll या अपने स्थान से।

  4. .NET 4.5 के लिए सामान्य परीक्षण के रूप में परीक्षण जोड़ें।

  5. जोड़ें परियोजना संदर्भ MyProject के लिए - परियोजना को लक्षित सिल्वरलाइट 5.

  6. कुछ परीक्षण जोड़ें। बनाएँ।लापता संदर्भ की त्रुटि मिलती है हो सकता है: Error 12 The type 'System.Xml.Serialization.IXmlSerializable' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Xml, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'

  7. संदर्भ C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\System.Xml.dll

  8. बिल्ड और एक ही त्रुटि मिलती है। *.csproj खोलें और संकेत पथ सुनिश्चित करें: xml <Reference Include="System.Xml"> <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\System.Xml.dll</HintPath> </Reference>

  9. रन परीक्षण, उदा। TestMethod पर राइट क्लिक के माध्यम से ->Run Tests। त्रुटि मिलती है हो सकता है: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified.WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. फिक्स है: <Reference Include="System.Windows"> <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\System.Windows.dll</HintPath> </Reference>

नोट्स:

  1. याद है कि Silverlight 5 विधानसभाओं .NET 4.5 के स्वरूप में ही कर रहे हैं।
  2. परीक्षण विफल हो गया क्योंकि .NET 4.5 असेंबली परियोजना के लिए डिफ़ॉल्ट हैं, हमें HintPath के माध्यम से ओवरराइड करने की आवश्यकता है। मुझे लगता है कि एमएसबिल्ड स्क्रिप्ट्स संशोधन और/या असेंबली बाध्यकारी पुनर्निर्देशन के माध्यम से अन्य तरीका हो सकता है।
  3. .NET कोर असेंबली 4.5 से लोड की जाती हैं, अगर ये सिल्वरलाइट चीजों से अलग हो सकती हैं। मुझे आशा नहीं है।
  4. सिल्वरलाइट होस्टिंग रनटाइम के आधार पर विशेषताएं असफल हो सकती हैं। सिल्वरलाइट विंडो दिखाने या एचटीएमएल डोम तक पहुंचने की तरह। सिल्वरलाइट अज्ञेयवादी होने के लिए कोड को दोबारा करने के लिए कौन सा अच्छा संकेतक है। संभावित त्रुटि:
 


     Test Outcome: Failed 

     Result Message: 
     System.DllNotFoundException: Unable to load DLL 'agcore': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
     Result StackTrace: 
    at MS.Internal.XcpImports.Application_GetCurrentNative(IntPtr context, IntPtr& obj) 
     at MS.Internal.XcpImports.Application_GetCurrent(IntPtr& pApp) 
     at System.Windows.Application.get_Current() 

 

प्रक्रिया में SL के लिए ActiveX क्रम लोड करने के लिए की जरूरत है इंगित करता है।

    परीक्षण विधानसभाओं के
  1. संदर्भित सिल्वरलाइट टूलकिट संस्करणों ([TestMethod] के साथ अंदर विशेषता) के बजाय नेट एक जारी करने के लिए है कि परीक्षण दिखाई दे रहे हैं की ओर जाता है, लेकिन नहीं चलाते हैं।
संबंधित मुद्दे