NUnit和Windows Phone Library(System.TypeLoadException)

时间:2012-10-21 14:50:51

标签: windows-phone-7 nunit windows-phone-7.1 nunit-console

我正在尝试使用NUnit和标准控制台(GUI或非GUI)运行器测试Windows Phone 7.1类库。

在我遇到问题之后,我发现了这个问题: http://dotneteers.net/blogs/vbandi/archive/2012/08/08/using-nunit-to-test-windows-phone-7-applications-part-1.aspx

所以我几乎可以肯定这是我自己的一个愚蠢的问题。

每次我尝试加载程序集测试时都会收到此错误:

  

System.TypeLoadException:无法加载类型   'System.Runtime.Versioning.TargetFrameworkAttribute'来自   assembly'mscorlib,版本= 2.0.0.0,文化=中立,   公钥= b77a5c561934e089' 。

     

有关更多信息,请使用“例外详细信息”菜单项。

*此处'详情'*

  

... System.TypeLoadException

     

服务器堆栈跟踪:en System.ModuleHandle.ResolveType(Int32   typeToken,RuntimeTypeHandle * typeInstArgs,Int32 typeInstCount,   RuntimeTypeHandle * methodInstArgs,Int32 methodInstCount)zh   System.ModuleHandle.ResolveTypeHandle(Int32 typeToken,   RuntimeTypeHandle [] typeInstantiationContext,RuntimeTypeHandle []   methodInstantiationContext)en   System.Reflection.Module.ResolveType(Int32 metadataToken,Type []   genericTypeArguments,Type [] genericMethodArguments)zh   System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord   caRecord,MetadataImport范围,汇编& lastAptcaOkAssembly,Module   decoratedModule,MetadataToken decoratedToken,RuntimeType   attributeFilterType,Boolean mustBeInheritable,Object []属性,   IList derivedAttributes,RuntimeType&属性类型,   RuntimeMethodHandle&安培; ctor,布尔& ctorHasParameters,Boolean&   isVarArg)en   System.Reflection.CustomAttribute.GetCustomAttributes(模块   decoratedModule,Int32 decoratedMetadataToken,Int32 pcaCount,   RuntimeType attributeFilterType,Boolean mustBeInheritable,IList   derivedAttributes)en   System.Reflection.CustomAttribute.GetCustomAttributes(大会   assembly,RuntimeType caType)en   System.Reflection.Assembly.GetCustomAttributes(Type attributeType,   布尔继承)en   NUnit.Core.ActionsHelper.GetActionsFromAttributeProvider(ICustomAttributeProvider   attributeProvider)en NUnit.Core.TestAssembly..ctor(Assembly   assembly,String path)en   NUnit.Core.Builders.TestAssemblyBuilder.BuildTestAssembly(大会   assembly,String assemblyName,IList fixture,Boolean autoSuites)
  en NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName,   Boolean autoSuites)zh   NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName,   String testName,Boolean autoSuites)zh   NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage包)
  en NUnit.Core.TestSuiteBuilder.Build(TestPackage package)en   NUnit.Core.SimpleTestRunner.Load(TestPackage包)en   NUnit.Core.ProxyTestRunner.Load(TestPackage包)en   NUnit.Core.ProxyTestRunner.Load(TestPackage包)en   NUnit.Core.RemoteTestRunner.Load(TestPackage包)en   System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr的   md,Object [] args,Object server,Int32 methodPtr,Boolean   fExecuteInContext,Object []& outArgs)en   System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle   md,Object [] args,Object server,Int32 methodPtr,Boolean   fExecuteInContext,Object []& outArgs)en   System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(即时聊天   msg,Int32 methodPtr,Boolean fExecuteInContext)

     

在[0]处重新抛出异常:en   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天   reqMsg,IMessage retMsg)en   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&安培;   msgData,Int32类型)zh NUnit.Core.TestRunner.Load(TestPackage   package)en NUnit.Util.TestDomain.Load(TestPackage package)en   NUnit.Util.TestLoader.LoadTest(String testName)

有人知道我找不到的问题是什么?

1 个答案:

答案 0 :(得分:0)

我发现(以一种非常容易解释的方式)问题是什么,解决方案是什么(或更好地说替代方案)。

问题在于NUnit Console Runner(或GUI runner)在不同的环境下执行。我的意思是Console ApplicationWinforms application,然后他们会尝试加载Windows Phone库,这就是问题所在。

解决方案是使用Re-Sharper,NCrunch,Visual NUnit或类似的东西执行测试,而不是使用NUnit默认的跑步者。

我正在使用Visual NUnit。 http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099

: - )

感谢所有读我问题的人。