Testes 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
| Exportação | Finalidade |
|---|---|
installCommonResolveTargetErrorCases | Casos de teste compartilhados para tratamento de erros de resolução de destino |
shouldAckReaction | Verifica se um canal deve adicionar uma reação de ack |
removeAckReactionAfterReply | Remove a reação de ack 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 destino
UseinstallCommonResolveTargetErrorCases para adicionar casos de erro padrão para
resolução de destino de canal:
Padrões de teste
Testando unitariamente um plugin de canal
Testando unitariamente um plugin de provedor
Simulando o runtime do plugin
Para código que usacreatePluginRuntimeStore, simule o 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 de 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 V8. Para testes de plugin:Relacionado
- Visão geral do SDK — convenções de importação
- SDK Channel Plugins — interface de plugin de canal
- SDK Provider Plugins — hooks de plugin de provedor
- Criando Plugins — guia de introdução