Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

A 64-bit test cannot run in a 32-bit process. Specify platform as X64 to force test run in X64 mode on X64 machine.

Visual Studio는 C/C++ 프로젝트 역시 단위 테스트를 (그나마) 쉽게 할 수 있는 기반을 제공합니다. 아래의 문서만 한번 읽어보면 금방 아실 수 있는데요.

Writing Unit tests for C/C++ with the Microsoft Unit Testing Framework for C++
; https://learn.microsoft.com/en-us/visualstudio/test/writing-unit-tests-for-c-cpp

아쉬운 점이라면, 닷넷의 경우 Fakes를 통해 BCL 제어를 할 수 있는 반면 C/C++의 경우에는 Fakes와 같은 기능이 제공되지 않아서 Code Coverage를 높이기 위한 세밀한 제어가 안되는 경우가 많습니다. (물론! ^^ 단위 테스트를 할 수 있다는 것만으로 충분히 가치가 있습니다.)

그런데, x64로 빌드된 DLL을 대상으로 하는 경우, 단위 테스트 실행 시 다음과 같은 오류가 발생할 수 있습니다.

Test Name:  TestMethod1
Test FullName:  CppNativeTest::UnitTest1::TestMethod1
Test Source:    d:\sources\unittest\cppnativetest\unittest1.cpp : line 12
Test Outcome:   Failed
Test Duration:  0:00:00

Result Message: A 64-bit test cannot run in a 32-bit process. Specify platform as X64 to force test run in X64 mode on X64 machine.

메시지에 나타난 그대로, 이유는 x64 용 DLL은 x64로 빌드된 테스트 프로세스에서 로드되어야 하기 때문입니다. 그리고 그 방법도 다음의 문서에서 잘 설명하고 있습니다.

Run a unit test as a 64-bit process
; https://learn.microsoft.com/en-us/visualstudio/test/run-a-unit-test-as-a-64-bit-process

즉, "Test" / "Test Settings" / "Default Processor Architecture" / "X64"로 선택하고 단위 테스트를 진행하면 끝!

x64_unit_test_1.png

참고로, 이 메뉴와 관련한 글을 쓴 적이 있군요. ^^

Visual Studio 단위 테스트 시 DisconnectedContext 예외 발생
; https://www.sysnet.pe.kr/2/0/10962




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 4/29/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13641정성태6/11/20248673Linux: 71. Ubuntu 20.04를 22.04로 업데이트
13640정성태6/10/20248841Phone: 21. C# MAUI - Android 환경에서의 파일 다운로드(DownloadManager)
13639정성태6/8/20248448오류 유형: 906. C# MAUI - Android Emulator에서 "Waiting For Debugger"로 무한 대기
13638정성태6/8/20248531오류 유형: 905. C# MAUI - 추가한 layout XML 파일이 Resource.Layout 멤버로 나오지 않는 문제
13637정성태6/6/20248458Phone: 20. C# MAUI - 유튜브 동영상을 MediaElement로 재생하는 방법
13636정성태5/30/20248097닷넷: 2264. C# - 형식 인자로 인터페이스를 갖는 제네릭 타입으로의 형변환파일 다운로드1
13635정성태5/29/20248962Phone: 19. C# MAUI - 안드로이드 "Share" 대상으로 등록하는 방법
13634정성태5/24/20249433Phone: 18. C# MAUI - 안드로이드 플랫폼에서의 Activity 제어 [1]
13633정성태5/22/20248956스크립트: 64. 파이썬 - ASGI를 만족하는 최소한의 구현 코드
13632정성태5/20/20248574Phone: 17. C# MAUI - Android 내에 Web 서비스 호스팅
13631정성태5/19/20249330Phone: 16. C# MAUI - /Download 등의 공용 디렉터리에 접근하는 방법 [1]
13630정성태5/19/20248880닷넷: 2263. C# - Thread가 Task보다 더 빠르다는 어떤 예제(?)
13629정성태5/18/20249170개발 환경 구성: 710. Android - adb.exe를 이용한 파일 전송
13628정성태5/17/20248552개발 환경 구성: 709. Windows - WHPX(Windows Hypervisor Platform)를 이용한 Android Emulator 가속
13627정성태5/17/20248619오류 유형: 904. 파이썬 - UnicodeEncodeError: 'ascii' codec can't encode character '...' in position ...: ordinal not in range(128)
13626정성태5/15/20248886Phone: 15. C# MAUI - MediaElement Source 경로 지정 방법파일 다운로드1
13625정성태5/14/20248936닷넷: 2262. C# - Exception Filter 조건(when)을 갖는 catch 절의 IL 구조
13624정성태5/12/20248731Phone: 14. C# - MAUI에서 MediaElement 사용파일 다운로드1
13623정성태5/11/20248430닷넷: 2261. C# - 구글 OAuth의 JWT (JSON Web Tokens) 해석파일 다운로드1
13622정성태5/10/20249223닷넷: 2260. C# - Google 로그인 연동 (ASP.NET 예제)파일 다운로드1
13621정성태5/10/20248643오류 유형: 903. IISExpress - Failed to register URL "..." for site "..." application "/". Error description: Cannot create a file when that file already exists. (0x800700b7)
13620정성태5/9/20248561VS.NET IDE: 190. Visual Studio가 node.exe를 경유해 Edge.exe를 띄우는 경우
13619정성태5/7/20248874닷넷: 2259. C# - decimal 저장소의 비트 구조파일 다운로드1
13618정성태5/6/20248665닷넷: 2258. C# - double (배정도 실수) 저장소의 비트 구조파일 다운로드1
13617정성태5/5/20249476닷넷: 2257. C# - float (단정도 실수) 저장소의 비트 구조파일 다운로드1
13616정성태5/3/20248642닷넷: 2256. ASP.NET Core 웹 사이트의 HTTP/HTTPS + Dual mode Socket (IPv4/IPv6) 지원 방법파일 다운로드1
1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...