현재 응용 프로그램을 빌드하는 데 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에서 실행되는 테스트를 얻는 방법은 무엇입니까?
또한보십시오 http://stackoverflow.com/questions/4105398/how-do-i-investigate-the-course-of-a-tests-assembly-refusing-to -load-in-nunit (nunit-x86.exe는 저에게 도움이되었습니다) –
고마워요! 수색에서 이것을 찾지 못했습니다. 내가 그것을 upvote 수 있도록 대답 해주세요! – yas4891