> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用标准测试

**标准测试确保您的集成按预期工作。**

无论是为自己创建自定义类还是发布到 LangChain 集成中，都需要添加测试以确保其按预期工作。LangChain 为每种集成类型提供了一套全面的[测试集](https://pypi.org/project/langchain-tests/)。本指南将向您展示如何将 LangChain 的标准测试套件添加到每种集成类型中。

## 设置

首先，安装所需的依赖项：

<CardGroup cols={2}>
  <Card title="langchain-core" icon="cube" href="https://github.com/langchain-ai/langchainjs/tree/main/langchain-core#readme" arrow>
    定义我们想要导入以定义自定义组件的接口
  </Card>

  <Card title="langchain-tests" icon="flask" href="https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-standard-tests#readme" arrow>
    提供运行测试所需的标准测试和插件
  </Card>
</CardGroup>

<CodeGroup>
  ```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  npm install @langchain/core
  npm install @langchain/standard-tests
  ```

  ```bash pnpm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  pnpm add @langchain/core
  pnpm add @langchain/standard-tests
  ```

  ```bash yarn theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  yarn add @langchain/core
  yarn add @langchain/standard-tests
  ```

  ```bash bun theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  bun add @langchain/core
  bun add @langchain/standard-tests
  ```
</CodeGroup>

`langchain-tests` 包中有两个命名空间：

<AccordionGroup>
  <Accordion title="单元测试" icon="settings">
    **位置**：`src.unit_tests`

    旨在隔离测试组件，无需访问外部服务

    [查看 API 参考](https://reference.langchain.com/python/langchain_tests/unit_tests)
  </Accordion>

  <Accordion title="集成测试" icon="network">
    **位置**：`src.integration_tests`

    旨在测试组件与外部服务的交互（特别是组件设计要交互的外部服务）

    [查看 API 参考](https://reference.langchain.com/python/langchain_tests/integration_tests)
  </Accordion>
</AccordionGroup>

## 实现标准测试

根据您的集成类型，您需要实现单元测试、集成测试或两者兼有。

通过继承您集成类型的标准测试套件，您将获得该类型的完整标准测试集合。测试运行要成功，给定测试应仅在模型支持被测试的功能时通过。否则，测试应被跳过。

由于不同的集成提供独特的功能集，LangChain 提供的大多数标准测试**默认是可选的**，以防止误报。因此，您需要覆盖属性以指示您的集成支持哪些功能——请参阅下面的示例。

```javascript tests/chat_models.standard.int.test.ts theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
// 指示聊天模型支持并行工具调用

class ChatParrotLinkStandardIntegrationTests extends ChatModelIntegrationTests<
    ChatParrotLinkCallOptions,
    AIMessageChunk
> {
    constructor() {
        // ... 其他必需属性

        super({
            // ... 其他必需属性
            supportsParallelToolCalls: true,  // (默认为 False)
            // ...
        });
    }
```

<Note>
  您应该将测试组织在相对于包根目录的这些子目录中：

  * `tests/unit_tests` 用于单元测试
  * `tests/integration_tests` 用于集成测试
</Note>

要查看可配置功能的完整列表及其默认值，请参阅[实现标准测试](/oss/javascript/contributing/standard-tests-langchain#implementing-standard-tests)。

## 沙盒集成

Deep Agents 沙盒集成使用来自 `@langchain/sandbox-standard-tests` 的 `sandboxStandardTests`。
使用包含 `createSandbox`、`resolvePath` 和 `closeSandbox` 的配置对象调用它。
参考 [Daytona 集成测试](https://github.com/langchain-ai/deepagentsjs/blob/main/libs/providers/daytona/src/sandbox.int.test.ts) 作为参考实现。
有关发布指南，请参阅[贡献沙盒集成](/oss/javascript/contributing/integrations-langchain)。

***

## 故障排除

有关可用标准测试套件的完整列表，以及包含哪些测试和如何排除常见问题的信息，请参阅[贡献 README](https://github.com/langchain-ai/langchainjs/blob/main/CONTRIBUTING.md)。

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/contributing/standard-tests-langchain.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
