Teste de Plugin
Referência para utilitários de teste, padrões e aplicação de lint para plugins do OpenClaw.Utilitários de teste
Importação:openclaw/plugin-sdk/testing
O subcaminho de teste exporta um conjunto restrito de helpers para autores de plugins:
Exportações disponíveis
| Export | Propósito |
|---|---|
installCommonResolveTargetErrorCases | Casos de teste compartilhados para tratamento de erros de resolução de alvo |
shouldAckReaction | Verifica se um canal deve adicionar uma reação de confirmação |
removeAckReactionAfterReply | Remove a reação de confirmação após a entrega da resposta |
Tipos
O subcaminho de teste também reexporta tipos úteis em arquivos de teste:Testando a resolução de alvo
UseinstallCommonResolveTargetErrorCases para adicionar casos de erro padrão para resolução de alvo do canal:
Padrões de teste
Teste unitário de um Plugin de canal
Teste unitário de um Plugin de provedor
Mockando o runtime do Plugin
Para código que usacreatePluginRuntimeStore, faça mock do runtime nos testes:
Testando com stubs por instância
Prefira stubs por instância em vez de mutação de protótipo:Testes de contrato (plugins no repositório)
Plugins empacotados têm testes de contrato que verificam a propriedade do registro:- Quais plugins registram quais provedores
- Quais plugins registram quais provedores de fala
- Correção da forma de registro
- Conformidade com o contrato de runtime
Executando testes com escopo
Para um Plugin específico:Aplicação de lint (plugins no repositório)
Três regras são aplicadas porpnpm check para plugins no repositório:
- Sem importações monolíticas da raiz — o barrel raiz
openclaw/plugin-sdké rejeitado - Sem importações diretas de
src/— plugins não podem importar../../src/diretamente - Sem autoimportações — plugins não podem importar seu próprio subcaminho
plugin-sdk/<name>
Configuração de teste
O OpenClaw usa Vitest com limites de cobertura do V8. Para testes de Plugin:Relacionados
- Visão geral do SDK — convenções de importação
- SDK de Plugins de canal — interface de Plugin de canal
- SDK de Plugins de provedor — hooks de Plugin de provedor
- Criando Plugins — guia de introdução