Pruebas de Plugin
Referencia de utilidades de prueba, patrones y aplicación de lint para plugins de OpenClaw.Utilidades de prueba
Importación:openclaw/plugin-sdk/testing
La subruta de pruebas exporta un conjunto acotado de helpers para autores de plugins:
Exportaciones disponibles
| Exportación | Propósito |
|---|---|
installCommonResolveTargetErrorCases | Casos de prueba compartidos para el manejo de errores de resolución de destino |
shouldAckReaction | Comprueba si un canal debe agregar una reacción de acuse |
removeAckReactionAfterReply | Elimina la reacción de acuse después de entregar la respuesta |
Tipos
La subruta de pruebas también vuelve a exportar tipos útiles en archivos de prueba:Pruebas de resolución de destino
UsainstallCommonResolveTargetErrorCases para agregar casos de error estándar para la resolución de destino del canal:
Patrones de prueba
Pruebas unitarias de un Plugin de canal
Pruebas unitarias de un Plugin de proveedor
Simulación del runtime del Plugin
Para código que usacreatePluginRuntimeStore, simula el runtime en las pruebas:
Pruebas con stubs por instancia
Prefiere stubs por instancia en lugar de mutación de prototipos:Pruebas de contrato (plugins en el repositorio)
Los plugins integrados tienen pruebas de contrato que verifican la propiedad del registro:- Qué plugins registran qué proveedores
- Qué plugins registran qué proveedores de voz
- Corrección de la forma del registro
- Cumplimiento del contrato de runtime
Ejecución de pruebas acotadas
Para un plugin específico:Aplicación de lint (plugins en el repositorio)
pnpm check aplica tres reglas para los plugins en el repositorio:
- Sin importaciones monolíticas desde la raíz — se rechaza el barrel raíz
openclaw/plugin-sdk - Sin importaciones directas de
src/— los plugins no pueden importar../../src/directamente - Sin autoimportaciones — los plugins no pueden importar su propia subruta
plugin-sdk/<name>
Configuración de pruebas
OpenClaw usa Vitest con umbrales de cobertura V8. Para pruebas de plugins:Relacionado
- Resumen del SDK — convenciones de importación
- Plugins de canal del SDK — interfaz de plugins de canal
- Plugins de proveedor del SDK — hooks de plugins de proveedor
- Creación de plugins — guía de introducción