Skip to main content
标准测试确保您的集成按预期工作。 在创建用于自己或发布在 LangChain 集成中的自定义类时,需要添加测试以确保其按预期工作。LangChain 为每种集成类型提供了全面的 一组测试供您使用。本指南将向您展示如何将 LangChain 的标准测试套件添加到每种集成类型中。

设置

首先,安装所需的依赖项: :::python

langchain-core

定义我们想要导入以定义自定义组件的接口

langchain-tests

提供运行测试所需的标准测试和 pytest 插件
::: :::js

langchain-core

定义我们想要导入以定义自定义组件的接口

langchain-tests

提供运行测试所需的标准测试和插件
::: :::python
由于 langchain-tests 的新版本中添加的测试可能会破坏您的 CI/CD 管道,我们建议固定到 langchain-tests 的最新版本,以避免意外变更。
::: :::python
::: :::js
::: langchain-tests 包含 2 个命名空间:
:::python 位置: langchain_tests.unit_tests ::: :::js 位置: src.unit_tests :::设计用于在隔离状态下测试组件,且无法访问外部服务查看 API 参考
:::python 位置: langchain_tests.integration_tests ::: :::js 位置: src.integration_tests :::设计用于在可以访问外部服务的情况下测试组件(特别是组件设计用于交互的外部服务)查看 API 参考
:::python 这两种类型的测试都实现为 pytest 基于类的测试套件。 ::>

实现标准测试

根据您的集成类型,您需要实现单元测试和/或集成测试。 通过继承您的集成类型的标准测试套件,您将获得该类型的标准测试的完整集合。要使测试运行成功,给定的测试只有在模型支持正在测试的功能时才应通过。否则,测试应被跳过。 由于不同的集成提供独特的功能集,LangChain 提供的大多数标准测试默认情况下是 按需选择 的,以防止误报。因此,您需要覆盖属性以指示您的集成支持哪些功能 - 以下示例说明了这一点。 :::python
tests/integration_tests/test_standard.py
::: :::js
tests/chat_models.standard.int.test.ts
:::
您应将这些测试组织在相对于您的包根目录的子目录中:
  • tests/unit_tests 用于单元测试
  • tests/integration_tests 用于集成测试
:::python 要查看可配置功能的完整列表及其默认值,请访问 标准测试 API 参考。 ::: :::js 要查看可配置功能的完整列表及其默认值,请参阅 实现标准测试。 ::: :::python 以下是一些来自流行集成的标准测试示例实现:

ChatOpenAI

单元测试

ChatAnthropic

单元测试

ChatGenAI

单元测试
:::

Sandbox 集成

:::python Deep Agents Sandbox 集成使用 SandboxIntegrationTests 从 langchain_tests.integration_tests。 继承它并提供一个 sandbox 固定装置,该装置生成一个 SandboxBackendProtocol 实例。 使用 Daytona 集成测试 作为参考实现。 有关发布指南,请参阅 贡献 Sandbox 集成。 ::: :::js Deep Agents Sandbox 集成使用 sandboxStandardTests 从 @langchain/sandbox-standard-tests。 使用包含 createSandbox、resolvePath 和 closeSandbox 的配置对象调用它。 使用 Daytona 集成测试 作为参考实现。 有关发布指南,请参阅 贡献 Sandbox 集成。 :::
:::python

运行测试

如果从模板引导集成,将提供一个 Makefile,其中包含运行单元测试和集成测试的目标:
否则,如果您遵循推荐的目录结构,可以通过以下方式运行测试:
:::

故障排除

:::python 有关可用标准测试套件的完整列表,以及包含哪些测试以及如何解决常见问题的信息,请参阅 标准测试 API 参考。 ::: :::js 有关可用标准测试套件的完整列表,以及包含哪些测试以及如何解决常见问题的信息,请参阅 贡献 README。 :::
官方原文:src/oss/contributing/standard-tests-langchain.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026