영어로 읽기

다음을 통해 공유


Databricks 노트북 테스트

이 페이지에서는 Databricks Notebook에서 직접 코드를 테스트할 때 유용한 몇 가지 기술을 간략하게 설명합니다. 이러한 방법을 개별적으로 사용하거나 함께 사용할 수 있습니다.

Databricks Notebook에서 함수 및 단위 테스트를 설정하고 구성하는 방법에 대한 자세한 연습은Notebook에 대한 단위 테스트를 참조하세요.

많은 단위 테스트 라이브러리가 Notebook 내에서 바로 작동합니다. 예를 들어 기본 제공 Python unittest 패키지를 사용하여 Notebook 코드를 테스트할 수 있습니다.

def reverse(s):
    return s[::-1]

import unittest

class TestHelpers(unittest.TestCase):
    def test_reverse(self):
        self.assertEqual(reverse('abc'), 'cba')

r = unittest.main(argv=[''], verbosity=2, exit=False)
assert r.result.wasSuccessful(), 'Test failed; see logs above'

테스트 실패는 셀의 출력 영역에 표시됩니다.

단위 테스트 실패

Databricks 위젯을 사용하여 Notebook 모드 선택

위젯을 사용하여 단일 Notebook의 일반 호출과 테스트 호출을 구분할 수 있습니다. 다음 코드는 스크린샷에 표시된 예제를 생성합니다.

dbutils.widgets.dropdown("Mode", "Test", ["Test", "Normal"])

def reverse(s):
  return s[::-1]

if dbutils.widgets.get('Mode') == 'Test':
  assert reverse('abc') == 'cba'
  print('Tests passed')
else:
  print(reverse('desrever'))

첫 번째 줄은 모드 드롭다운 메뉴를 생성합니다.

위젯 사용자 지정 실행

테스트 코드 및 결과 숨기기

테스트 코드 및 결과를 숨기려면 코드 숨기기 또는 결과 숨기기셀 작업 메뉴에서 선택합니다. 결과가 숨겨져 있더라도 오류가 표시됩니다.

자동으로 실행되도록 테스트 예약

주기적으로 테스트를 자동으로 실행하려면 예약된 Notebook을 사용하면 됩니다. 지정한 이메일 주소로 알림 이메일을 보내도록 작업을 구성할 수 있습니다.

예약된 노트북 테스트

Notebook에서 테스트 코드를 분리하다

%run 또는 Databricks Git 폴더를 사용하여 테스트 코드를 Notebook과 별도로 유지할 수 있습니다. %run을 사용하는 경우 테스트 코드는 다른 Notebook에서 호출하는 별도의 Notebook에 포함됩니다. Databricks Git 폴더를 사용하는 경우 Notebook이 아닌 소스 코드 파일에 테스트 코드를 유지할 수 있습니다.

이 섹션에서는 %run 및 Databricks Git 폴더를 사용하여 테스트 코드를 Notebook과 분리하는 몇 가지 예를 보여 줍니다.

%run 사용

아래 스크린샷은 %run을 사용하여 다른 Notebook에서 Notebook을 실행하는 방법을 보여줍니다. 사용에 %run대한 자세한 내용은 전자 %run 필기장 가져오기 사용을 참조하세요. 예제를 생성하는 데 사용되는 코드는 스크린샷 다음에 표시됩니다.

초기 테스트 코드

테스트 코드 분리

예제에 사용된 코드는 다음과 같습니다. 이 코드는 shared-code-notebookshared-code-notebook-test가 동일한 작업 영역 폴더에 있다고 가정합니다.

공유 코드 노트북:

def reverse(s):
  return s[::-1]

공유 코드 노트북 테스트:

한 셀에서:

%run ./shared-code-notebook

후속 셀에서 다음을 실행합니다.

import unittest

class TestHelpers(unittest.TestCase):
    def test_reverse(self):
        self.assertEqual(reverse('abc'), 'cba')

r = unittest.main(argv=[''], verbosity=2, exit=False)
assert r.result.wasSuccessful(), 'Test failed; see logs above'

Databricks Git 폴더 사용

Databricks Git 폴더에 저장된 코드의 경우 테스트를 호출하고 Notebook에서 직접 실행할 수 있습니다.

Notebook 테스트 호출

로컬 컴퓨터에서와 마찬가지로 웹 터미널을 사용하여 소스 코드 파일에서 테스트를 실행할 수도 있습니다.

Git 폴더 테스트 호출

CI/CD 스타일 워크플로 설정

Databricks Git 폴더에 있는 노트북의 경우, 각 커밋에 대해 노트북 테스트가 실행되도록 구성하여 CI/CD 스타일의 워크플로를 설정할 수 있습니다. Databricks GitHub Actions를 참조하세요.


추가 리소스

설명서