🧩 정의

TestRunner 란?

Unity TestRunner는 Unity에서 EditMode와 PlayMode 테스트를 실행하고 관리하는 단위테스트 도구이다.

  • 테스트를 자동화할 수 있다.
  • Unity 환경에서 스크립트 동작을 검증할 수 있다.
  • TDD 흐름에도 활용할 수 있다.

🧭 종류

  • PlayMode Test : 게임 실행 중 동작을 테스트한다.
  • EditMode Test : 에디터 상태에서 스크립트 로직을 테스트한다.

⚙️ 환경 설정

Step 1 : TestRunner 윈도우 열기

image
image
image

Step 2 : Assembly Folder 생성

  • 위 이미지의 Create EditMode Test Assembly Folder 버튼을 선택해 테스트 폴더를 생성한다.
  • EditMode용 Assembly Definition 파일도 함께 생성된다.

image

Step 3 : 테스트 스크립트에서 사용할 Assembly 생성

  • 스크립트 폴더 아래에 생성한다.

image

image
image

Step 4 : EditTests Assembly Definition 파일에 Script Assembly Definition 파일 연결

image

🛠 테스트 스크립트 작성

스크립트 생성

image

Test Attribute

  • [SetUp] : 각 테스트 메서드 실행 전 초기화 작업
  • [Test] : EditMode 테스트 메서드
  • [UnitySetUp] : PlayMode 테스트 메서드 실행 전 초기화 작업
  • [UnityTest] : PlayMode 테스트 메서드

PlayMode 테스트 스크립트 샘플

  public class TestMoveOnePointToXPos
  {
	  GameObject testObject;

	  [UnitySetUp]
	  public IEnumerator Setup()
	  {
		  testObject = new GameObject("testGameObject");
		  yield return null;
	  }

	  [UnityTest]
	  public IEnumerator TestMoveOnePointToXPos_MoveOneToX()
	  {
		  Vector3 expectedPos = new Vector3(1, 0, 0);
		  testObject.transform.position = Vector3.zero;

		  testObject.AddComponent<MoveOnePointToXPos>();

		  yield return null;

		  Assert.AreEqual(expectedPos, testObject.transform.position);

	  }
  }  

image 테스트를 실행하면 검증에 성공한다.

⚠️ 주의사항

  • EditMode와 PlayMode는 실행 환경이 다르므로 테스트 목적에 맞게 선택해야 한다.
  • PlayMode 테스트는 IEnumeratoryield return null을 자주 사용한다.
  • Assembly Definition 연결이 빠지면 테스트가 인식되지 않을 수 있다.
  • 테스트 이름은 동작이 드러나도록 명확하게 짓는 편이 좋다.

📌 정리

  • TestRunner는 Unity 테스트를 실행하는 기본 도구다.
  • EditMode와 PlayMode로 나눠서 테스트를 구성할 수 있다.
  • Assembly Definition 설정과 어트리뷰트 이해가 핵심이다.

연결문서

댓글남기기