{!See https://docs.google.com/document/d/1takg_GmIBBKKTj-GHZCwzxohpQz7Bhekivkk72kYMtE/edit for reference implementation of OneTrust, dataLayer and GTM} {!OneTrust Cookies Consent} {!OneTrust Cookies Consent end} {!dataLayer initialization push} {!dataLayer initialization push end} {!Google Tag Manager} {!Google Tag Manager end} 편집 모드 테스트 vs 플레이 모드 테스트 | Test Framework | 2.0.1-exp.2
docs.unity3d.com
"{0}"의 검색 결과

    목차 표시/숨기기

    편집 모드 테스트 vs 플레이 모드 테스트

    Unity 테스트 프레임워크를 시작하기 전에 Unity 테스트 프레임워크 컨텍스트에서 플레이 모드 테스트와 편집 모드 테스트가 무엇을 의미하는지 이해하는 것이 중요합니다.

    편집 모드 테스트

    편집 모드 테스트(에디터 테스트라고도 함)는 Unity 에디터에서만 실행되며, 게임 코드와 에디터 코드 모두에 액세스할 수 있습니다

    편집 모드 테스트에서는 UnityTest 속성을 사용하여 에디터 확장을 테스트할 수 있습니다. 편집 모드 테스트의 경우 테스트 코드는 EditorApplication.update 콜백 루프에서 실행됩니다.

    참고: 편집 모드 테스트에서 플레이 모드의 시작과 종료를 제어할 수도 있습니다. 이렇게 하면 플레이 모드를 시작하기 전에 테스트를 변경할 수 있습니다.

    편집 모드 테스트는 다음 조건 중 하나를 충족해야 합니다.

    • nunit.framework.dll에 대한 레퍼런스가 있는 어셈블리 정의가 있습니다.
    • 에디터를 타겟 플랫폼으로 사용하는 경우 테스트는 기본적으로 편집 모드로 처리됩니다.
        "includePlatforms": [
                "Editor"
            ],
    
    • 어셈블리가 다른 플랫폼을 대상으로 하는 경우 편집 모드 테스트에 [RequiresPlayMode(false)]가 있어야 합니다.

    플레이 모드 테스트

    플레이 모드 테스트를 사용하면 런타임 시점에 게임 코드를 실행할 수 있으며, UnityTest 속성이 표시된 경우 코루틴으로 실행됩니다. 표준 방식으로 테스트를 실행하는 경우 플레이 모드 테스트는 에디터에 내장된 플레이 모드에서 실행됩니다. 타겟 플랫폼용으로 빌드된 스탠드얼론 플레이어에서도 플레이 모드 테스트를 실행할 수 있습니다.

    플레이 모드 테스트는 다음 조건을 충족해야 합니다.

    • nunit.framework.dll에 대한 레퍼런스가 있는 어셈블리 정의가 있습니다.
    • 테스트 스크립트가 .asmdef 파일이 있는 폴더에 있습니다.
    • 테스트 어셈블리는 테스트하려는 코드가 포함된 어셈블리를 참조합니다.
    • 테스트하려는 프로젝트 코드에 테스트 어셈블리가 참조할 수 있는 자체 어셈블리 정의가 있습니다.
        "references": [
                "NewAssembly"
            ],
            "optionalUnityReferences": [
                "TestAssemblies"
           ],
            "includePlatforms": [],
    

    플레이 모드 필요

    에디터만 타겟 플랫폼으로 사용하는 테스트 어셈블리가 있는 경우 기본적으로 Unity 테스트 프레임워크는 어셈블리의 모든 테스트를 편집 모드에서만 실행합니다. 마찬가지로 어셈블리가 에디터 이외의 플랫폼(예: Windows 64비트)을 대상으로 하는 경우 Unity 테스트 프레임워크는 플레이 모드 테스트로 간주하고 기본적으로 에디터의 플레이 모드에서 실행합니다.

    이러한 기본값은 RequirePlayModeAttribute를 사용하여 오버라이드할 수 있습니다. 테스트가 에디터 전용 어셈블리의 일부인 경우 [RequiresPlayMode]를 주석으로 추가하여 에디터의 플레이 모드에서 실행되도록 할 수 있습니다. 플랫폼 전용 어셈블리가 있지만 테스트가 에디터의 플레이 모드에서 실행되지 않도록 하려면 [RequiresPlayMode(false)]를 사용하여 플레이 모드에서 실행되지 않도록 제외할 수 있습니다.

    테스트 실행 위치

    다음 표에는 어셈블리 설정, RequiresPlayMode 값, Run Location 옵션을 기반으로 테스트가 실행되는 위치가 요약되어 있습니다.

    어셈블리 레퍼런스 RequiresPlayMode 실행 위치 실행 모드
    에디터 전용 False 또는 지정되지 않음 In Editor 에디터 편집 모드
    True In Editor 에디터 플레이 모드
    특정 플랫폼 False In Editor 에디터 편집 모드
    On Player 플레이어
    True 또는 지정되지 않음 In Editor 에디터 플레이 모드
    On Player 플레이어

    요약하자면, [RequiresPlayMode]를 통해 오버라이드되지 않는 한 기본적으로 에디터 어셈블리는 테스트를 편집 모드로 설정합니다. [RequiresPlayMode(false)]를 통해 오버라이드되지 않는 한 기본적으로 플랫폼 어셈블리는 테스트를 플레이 모드로 설정합니다. 플레이어에서 실행되는 테스트는 항상 플레이어에서 실행됩니다.

    레퍼런스 및 빌드

    Unity 테스트 프레임워크는 어셈블리 정의 파일에 테스트 어셈블리에 대한 레퍼런스를 추가하지만, 다른 레퍼런스(예: Unity 프로젝트의 다른 스크립팅 어셈블리에 대한 레퍼런스)는 포함하지 않습니다. 다른 어셈블리를 테스트하려면 어셈블리 정의에 직접 추가해야 합니다. 어셈블리 레퍼런스 추가에 대한 자세한 내용은 어셈블리 정의를 참조하십시오.\n테스트를 별도의 어셈블리로 구성하고, 어셈블리 정의 파일을 사용하여 테스트 대상 코드에 선택적으로 노출하는 것이 좋습니다. 이렇게 하면 테스트 관련 DLL을 참조해야 하는 어셈블리를 효과적으로 제어할 수 있고, 빌드에 불필요한 어셈블리가 포함되지 않도록 할 수 있습니다.

    권장 사항

    속성

    편집 모드에서 특수 명령을 실행 양보해야 하거나, 플레이 모드에서 프레임을 건너뛰거나 특정 시간 동안 대기해야 하는 경우를 제외하고는 UnityTest 대신에 NUnit Test 속성을 사용하십시오.

    레퍼런스

    테스트 어셈블리에서 UnityEngine.TestRunner 및 UnityEditor.TestRunner의 테스트 툴을 참조할 수 있습니다. 후자는 편집 모드에서만 사용할 수 있습니다. 이러한 레퍼런스는 어셈블리 정의의 Assembly Definition References에서 지정할 수 있습니다.

    문서 개요
    맨 위로
    Copyright © 2023 Unity Technologies — 상표 및 이용약관
    • 법률정보
    • 개인정보처리방침
    • 쿠키
    • 내 개인정보 판매 금지
    • Your Privacy Choices (Cookie Settings)