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

设置

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

langchain-core

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

langchain-tests

提供运行测试所需的标准测试和插件
npm install @langchain/core
npm install @langchain/standard-tests
langchain-tests 包中有两个命名空间:
位置src.unit_tests旨在隔离测试组件,无需访问外部服务查看 API 参考
位置src.integration_tests旨在测试组件与外部服务的交互(特别是组件设计要交互的外部服务)查看 API 参考

实现标准测试

根据您的集成类型,您需要实现单元测试、集成测试或两者兼有。 通过继承您集成类型的标准测试套件,您将获得该类型的完整标准测试集合。测试运行要成功,给定测试应仅在模型支持被测试的功能时通过。否则,测试应被跳过。 由于不同的集成提供独特的功能集,LangChain 提供的大多数标准测试默认是可选的,以防止误报。因此,您需要覆盖属性以指示您的集成支持哪些功能——请参阅下面的示例。
tests/chat_models.standard.int.test.ts
// 指示聊天模型支持并行工具调用

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

        super({
            // ... 其他必需属性
            supportsParallelToolCalls: true,  // (默认为 False)
            // ...
        });
    }
您应该将测试组织在相对于包根目录的这些子目录中:
  • tests/unit_tests 用于单元测试
  • tests/integration_tests 用于集成测试
要查看可配置功能的完整列表及其默认值,请参阅实现标准测试

沙盒集成

Deep Agents 沙盒集成使用来自 @langchain/sandbox-standard-testssandboxStandardTests。 使用包含 createSandboxresolvePathcloseSandbox 的配置对象调用它。 参考 Daytona 集成测试 作为参考实现。 有关发布指南,请参阅贡献沙盒集成

故障排除

有关可用标准测试套件的完整列表,以及包含哪些测试和如何排除常见问题的信息,请参阅贡献 README