표준 테스트 사용하기

표준 테스트 사용하기 (Using standard tests)

표준 테스트는 통합이 예상대로 작동하는지 보장해요.

자신을 위한 커스텀 클래스를 만들든 LangChain 통합으로 게시하기 위해 만들든, 예상대로 작동하는지 확인하기 위한 테스트를 추가하는 것이 필요합니다. LangChain은 각 통합 유형에 대한 포괄적인 테스트 세트를 제공합니다. 이 가이드는 각 통합 유형에 LangChain의 표준 테스트 스위트를 추가하는 방법을 보여줍니다.

출처: 문서

본문

설정 (Setup)

먼저 필요한 의존성을 설치하세요:

  • langchain-core (GitHub): 커스텀 컴포넌트를 정의하기 위해 임포트하려는 인터페이스 정의
  • langchain-tests (GitHub): 표준 테스트와 실행에 필요한 플러그인 제공
npm install @langchain/core
npm install @langchain/standard-tests
pnpm add @langchain/core
pnpm add @langchain/standard-tests
yarn add @langchain/core
yarn add @langchain/standard-tests
bun add @langchain/core
bun add @langchain/standard-tests

langchain-tests 패키지에는 2개의 네임스페이스가 있습니다:

  • 단위 테스트 (Unit tests)위치: src.unit_tests. 외부 서비스 접근 없이 컴포넌트를 격리해서 테스트하도록 설계됨. API 레퍼런스 보기
  • 통합 테스트 (Integration tests)위치: src.integration_tests. 외부 서비스(특히 컴포넌트가 상호작용하도록 설계된 외부 서비스) 접근으로 컴포넌트를 테스트하도록 설계됨. API 레퍼런스 보기

표준 테스트 구현하기 (Implementing standard tests)

통합 유형에 따라 단위 및/또는 통합 테스트를 구현해야 합니다.

통합 유형의 표준 테스트 스위트를 서브클래싱하면 해당 유형의 전체 표준 테스트 컬렉션을 얻을 수 있습니다. 테스트 실행이 성공하려면 주어진 테스트는 모델이 테스트 중인 기능을 지원하는 경우에만 통과해야 합니다. 그렇지 않으면 테스트를 건너뛰어야 합니다.

서로 다른 통합이 고유한 기능 세트를 제공하기 때문에 LangChain이 제공하는 대부분의 표준 테스트는 오탐(false positive)을 방지하기 위해 기본적으로 opt-in입니다. 결과적으로 통합이 지원하는 기능을 나타내기 위해 속성을 재정의해야 합니다 — 아래 예시를 참조하세요.

// Indicate that a chat model supports parallel tool calls

class ChatParrotLinkStandardIntegrationTests extends ChatModelIntegrationTests<
    ChatParrotLinkCallOptions,
    AIMessageChunk
> {
    constructor() {
        // ... other required properties

        super({
            // ... other required properties
            supportsParallelToolCalls: true,  // (The default is False)
            // ...
        });
    }
다음 하위 디렉터리에서 패키지 루트를 기준으로 테스트를 구성해야 합니다:
  • tests/unit_tests — 단위 테스트용
  • tests/integration_tests — 통합 테스트용

구성 가능한 기능 전체 목록과 기본값은 표준 테스트 구현하기를 참고하세요.

샌드박스 통합

Deep Agents 샌드박스 통합은 @langchain/sandbox-standard-testssandboxStandardTests를 사용합니다. createSandbox, resolvePath, closeSandbox를 포함한 구성 객체로 호출하세요. 참조 구현으로 Daytona 통합 테스트를 사용하세요. 게시 지침은 샌드박스 통합 기여하기를 참고하세요.

문제 해결 (Troubleshooting)

사용 가능한 표준 테스트 스위트의 전체 목록과 포함된 테스트, 흔한 문제 해결 방법에 대한 정보는 기여 README를 참고하세요.

더 알아보기