2012-10-21 4 views
0

NUnit 및 표준 콘솔 (GUI가 아닌 GUI) 러너를 사용하여 Windows Phone 7.1 클래스 라이브러리를 테스트하려고합니다.NUnit 및 Windows Phone 라이브러리 (System.TypeLoadException)

나는 아래의 관련 내 문제는,이 하나를 발견 한 후 : http://dotneteers.net/blogs/vbandi/archive/2012/08/08/using-nunit-to-test-windows-phone-7-applications-part-1.aspx

그래서 나는이 내 자신의 바보 같은 문제가 거의 확신합니다.

나는이 오류 얻을 내 조립 테스트를로드 할 때마다 :

여기

System.TypeLoadException: Cannot load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

For futher information, use the Exception Details menu item.

* '세부 사항'*

System.TypeLoadException...

Server stack trace: en System.ModuleHandle.ResolveType(Int32 typeToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle* methodInstArgs, Int32 methodInstCount) en System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) en System.Reflection.Module.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) en System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, Module decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, RuntimeMethodHandle& ctor, Boolean& ctorHasParameters, Boolean& isVarArg) en System.Reflection.CustomAttribute.GetCustomAttributes(Module decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes) en System.Reflection.CustomAttribute.GetCustomAttributes(Assembly assembly, RuntimeType caType) en System.Reflection.Assembly.GetCustomAttributes(Type attributeType, Boolean inherit) en NUnit.Core.ActionsHelper.GetActionsFromAttributeProvider(ICustomAttributeProvider attributeProvider) en NUnit.Core.TestAssembly..ctor(Assembly assembly, String path) en NUnit.Core.Builders.TestAssemblyBuilder.BuildTestAssembly(Assembly assembly, String assemblyName, IList fixtures, Boolean autoSuites)
en NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites) en NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites) en NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package)
en NUnit.Core.TestSuiteBuilder.Build(TestPackage package) en NUnit.Core.SimpleTestRunner.Load(TestPackage package) en NUnit.Core.ProxyTestRunner.Load(TestPackage package) en NUnit.Core.ProxyTestRunner.Load(TestPackage package) en NUnit.Core.RemoteTestRunner.Load(TestPackage package) 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(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]: en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) en NUnit.Core.TestRunner.Load(TestPackage package) en NUnit.Util.TestDomain.Load(TestPackage package) en NUnit.Util.TestLoader.LoadTest(String testName)

누군가가 아니에요 문제가 무엇인지를 찾을 수 있을까요?

답변

0

나는 (매우 설명하기 쉬운 방식으로) 문제점이 무엇인지, 그리고 해결책이 무엇인지 (또는 더 나은 대안을 찾았습니다.) 발견했습니다.

문제는 NUnit Console Runner (또는 GUI 러너)가 다른 환경에서 실행된다는 것입니다. Console Application 또는 Winforms application을 의미하며 그 다음에 그들은 Windows Phone 라이브러리를로드하려고하는데 이것이 문제입니다.

이 솔루션은 Re-Sharper, NCrunch, Visual NUnit 또는 비슷한 것으로 테스트를 실행하며 NUnit 기본 러너를 사용하지 않습니다.

Visual NUnit을 사용하고 있습니다. http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099

:-)

감사하고 내 질문을 읽는 모든 사람들에게 감사합니다.