2016-05-18 13 views
5

नियमित पीसीएल लाइब्रेरी में नूनिट का उपयोग कर परीक्षण चलाने की कोशिश कर रहा है। यह सिर्फ एक खाली परियोजना है, जिसमें एकल परीक्षण है जो कुछ भी नहीं करता है।पोर्टेबल क्लास लाइब्रेरी परीक्षणों के लिए एनयूनीट

NUnit सांत्वना धावक संदेश से पता चलता

NUnit 3.0 चालक NUnit के पोर्टेबल संस्करण का समर्थन नहीं करता। एक मंच विशिष्ट धावक का प्रयोग करें।

और Resharper धावक संदेश के साथ क्रैश हो रहा है

यूनिट परीक्षण रनर परीक्षण

और एक स्टैक ट्रेस चलाने में विफल:

at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) 
    at System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) 
    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) 
    at NUnit.Engine.Drivers.NUnit3FrameworkDriver.Load(String testAssemblyPath, IDictionary`2 settings) 
    at NUnit.Engine.Runners.DirectTestRunner.LoadPackage() 
    at NUnit.Engine.Runners.AbstractTestRunner.Load() 
    at NUnit.Engine.Runners.MasterTestRunner.LoadPackage() 
    at NUnit.Engine.Runners.AbstractTestRunner.EnsurePackageIsLoaded() 
    at NUnit.Engine.Runners.MasterTestRunner.NUnit.Engine.ITestRunner.Explore(TestFilter filter) 
    at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0() in c:\Build Agent\work\10282fe47e6c6213\Psi.Features\UnitTesting\nUnit\Runner30\Src\BuiltInNUnitRunner.cs:line 79 
    at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action) in c:\Build Agent\work\10282fe47e6c6213\Psi.Features\UnitTesting\nUnit\Runner30\Src\BuiltInNUnitRunner.cs:line 623 

अनुसार this टिप्पणी पीसीएल चाहिए काम, लेकिन यह नहीं करता है। यदि हम Xamarin के बिना पीसीएल का उपयोग कर रहे हैं तो परीक्षण निष्पादित करने के विकल्प क्या हैं?

उत्तर

6

पोर्टेबल परीक्षण चलाने के लिए, आपको एक स्व-निष्पादन परीक्षण धावक बनाने के लिए NUnitLite का उपयोग करने की आवश्यकता है। असल में, आप एक .NET 4.5.x कंसोल एप्लिकेशन, संदर्भ NUnitLite और अपनी टेस्ट असेंबली बनाते हैं। फिर आप अपने परीक्षण चलाने के लिए कंसोल एप्लिकेशन चलाते हैं। चरणों के लिए Testing .NET Core using NUnit 3 देखें, सिवाय इसके कि यह परीक्षण चलाने के लिए .NET 4.5 के बजाय .NET कोर का उपयोग करता है।

विधानसभा परीक्षण किए जाने पीसीएल है, लेकिन एक लक्ष्य के रूप .NET 4.5 है, तो एक आसान दृष्टिकोण नेट 4.5.x के रूप में अपने परीक्षण विधानसभा बना सकते हैं और परीक्षण के अंतर्गत पीसीएल विधानसभा संदर्भ के लिए है। यह आपके परीक्षणों को न्यूटिट फ्रेमवर्क के पूर्ण संस्करण का संदर्भ देगा और आपको विजुअल स्टूडियो या रिशेर्पर के साथ अपने परीक्षण चलाने की अनुमति देगा। सिर्फ इसलिए कि जिस कोड पर आप काम कर रहे हैं वह पीसीएल है, इसका मतलब यह नहीं है कि आपके परीक्षणों को पीसीएल होना चाहिए।

संबंधित मुद्दे