2010-11-30 5 views
2

현재 응용 프로그램을 빌드하는 데 C# 및 .NET 4.0을 사용하고 있습니다. 단위 테스트를 위해 나는 NUnit을 최신 버전으로 사용합니다.NUnit이있는 64 비트 창에서 32 비트 어셈블리를 테스트하십시오.

내 응용 프로그램에서는 32 비트 DLL을 사용해야하므로 대상 'x86'을 사용하여 어셈블리를 만들어야합니다.

응용 프로그램 자체는 32 비트 및 64 비트 Windows에서 잘 작동하지만 나는 '86'어셈블리를로드 할 때 다음과 같은 예외가 먹을수록 내가 NUnit를 사용할 수 없습니다 : 설정 -에서

를> 어셈블리 격리 저는 '어셈블리마다 별도의 프로세스에서 테스트 실행'을 사용하지만 사용하지 않습니다.

System.BadImageFormatException... 

Server stack trace: 
    bei System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 
    bei System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
    bei System.Reflection.Assembly.Load(AssemblyName assemblyRef) 
    bei NUnit.Core.Builders.TestAssemblyBuilder.Load(String path) 
    bei NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites) 
    bei NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites) 
    bei NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package) 
    bei NUnit.Core.TestSuiteBuilder.Build(TestPackage package) 
    bei NUnit.Core.SimpleTestRunner.Load(TestPackage package) 
    bei NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
    bei NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
    bei NUnit.Core.RemoteTestRunner.Load(TestPackage package) 
    bei System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 
    bei System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) 

Exception rethrown at [0]: 
    bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    bei NUnit.Core.TestRunner.Load(TestPackage package) 
    bei NUnit.Util.TestDomain.Load(TestPackage package) 
    bei NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
    bei NUnit.Util.RemoteTestAgent.AgentRunner.Load(TestPackage package) 
    bei System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 
    bei System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) 

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

64 비트 버전의 Windows에서 실행되는 테스트를 얻는 방법은 무엇입니까?

+7

또한보십시오 http://stackoverflow.com/questions/4105398/how-do-i-investigate-the-course-of-a-tests-assembly-refusing-to -load-in-nunit (nunit-x86.exe는 저에게 도움이되었습니다) –

+0

고마워요! 수색에서 이것을 찾지 못했습니다. 내가 그것을 upvote 수 있도록 대답 해주세요! – yas4891

답변

관련 문제