programing

x64 플랫폼에서 실행할 단위 테스트를 받으려면 어떻게 해야 합니까?

megabox 2023. 10. 6. 21:01
반응형

x64 플랫폼에서 실행할 단위 테스트를 받으려면 어떻게 해야 합니까?

x64 모드로 실행해야 하는 C# 어플리케이션이 있습니다.문제는 x64 어플리케이션에서 메소드를 실행하는 유닛 테스트를 만들려고 하는데 유닛 테스트 프로젝트가 빌드되지도 않는다는 것입니다.빌드를 시도할 때 다음과 같은 오류가 발생합니다.

C:.......\bin\x64\Debug....를 로드하는 중 오류가 발생했습니다.UnitTests.dll: 테스트 컨테이너 'C:.......\bin\x64\Debug....'를 로드할 수 없습니다.UnitTests.dll' 또는 해당 종속성 중 하나입니다.테스트 프로젝트 어셈블리를 64비트 어셈블리로 빌드하면 로드할 수 없습니다.테스트 프로젝트 어셈블리를 빌드할 때 플랫폼의 "아무 CPU"를 선택합니다.64비트 프로세서에서 64비트 모드로 테스트를 실행하려면 호스트 탭에서 테스트 설정을 변경하여 32비트 프로세스로 테스트를 실행해야 합니다.오류 세부 정보: 'file://C:...UnitTests\bin\x64\Debug......UnitTests.dll' 또는 해당 종속성 중 하나를 로드할 수 없습니다.잘못된 형식의 프로그램을 로드하려고 했습니다.

유닛 테스트를 x64와 Any CPU로 변경을 시도했지만 여전히 실행이 되지 않습니다.이것에 대한 해결책이 있습니까?

VS 2012 이상에서는 다음 중에서 기본 타깃 플랫폼을 선택할 수 있습니다.Test아래 메뉴Test Settings|Default Processor Architecture

Visual Studio Test Settings

당신이 비주얼 스튜디오 테스트 프레임워크를 사용하고 있다고 가정합니다. 다른 것은 언급하지 않으셨기 때문입니다.VS2010에서는 x64에서 테스트 호스트를 강제로 실행할 수 있습니다.어셈블리를 Any CPU 또는 x64로 빌드한 다음 테스트 호스트를 x64로 설정합니다.

http://msdn.microsoft.com/en-us/library/ee782531.aspx

저도 비슷한 문제가 있었습니다.Visual Studio 2010(x64 아래)에 이상한 문제가 있으며, 이로 인해 기존 솔루션에 새 프로젝트를 추가할 때 대상 CPU가 변경됩니다.모든 참조 및 CPU 대상이 x64인 것이 확실합니까?

다음을 선호하는 사용자에 한해 nunit3의 경우dotnet test

이것은 둘 다에게 효과가 있습니다.NETcore 및 .NET Framework 프로젝트

dotnet test -- RunConfiguration.TargetPlatform=x64

테스트 프로젝트의 모든 참조를 로컬(true)로 설정해야 합니다.전에 이런 문제가 있었는데, 당신에게도 효과가 있기를 바랍니다 (window 7 64bit + VS2012를 사용하고 있습니다.

이 오류는 관련 어셈블리를 모두 청소하고 재구축하면 수정할 수 있습니다.예기치 않게 손상된 파일이 하나 있어야 합니다.

VS가 개선해야 할 점은 잘못된 포맷의 예외가 발견되었을 때 파일명을 보고해주세요.그러면 개발자는 해당 파일만 재구축할 수 있습니다.

Add App.config 파일이라는 동일한 문제가 있었습니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

언급URL : https://stackoverflow.com/questions/5571699/how-do-i-get-unit-tests-to-run-on-a-x64-platform

반응형