Test Command
Run test suites for Homeboy components/extensions.
Synopsis
bash
homeboy test <component> [options]Description
The test command executes test suites for specified Homeboy components. It automatically discovers and runs the appropriate test infrastructure for each component type.
Arguments
<component>: Name of the component to test (must have a extension configured)
Options
--skip-lint: Skip linting before running tests--setting <key=value>: Override component settings (can be used multiple times)
Examples
bash
# Test the wordpress component with default settings
homeboy test wordpress
# Test wordpress with MySQL instead of SQLite
homeboy test wordpress --setting database_type=mysql --setting mysql_host=localhost
# Run tests only, skip linting
homeboy test wordpress --skip-lint
# Test with multiple setting overrides
homeboy test wordpress --setting database_type=mysql --setting mysql_database=test_dbPassthrough Arguments
Arguments after -- are passed directly to the extension’s test runner script:
bash
# Pass a single argument
homeboy test my-extension -- --filter=SomeTest
# Pass multiple arguments
homeboy test my-extension -- --filter=SomeTest --verboseSupported arguments depend on the underlying test framework.
Component Requirements
For a component to be testable, it must have:
- A linked extension with test support
- A manifest file for the extension (e.g., wordpress.json)
- A test-runner script provided by the extension (at scripts/test-runner.sh within the extension)
Supported Components
Currently supported:
- wordpress: PHPUnit-based WordPress testing with SQLite/MySQL support
Settings
Settings vary by component. For WordPress:
database_type:"sqlite"(default) or"mysql"mysql_host: MySQL hostname (default:"localhost")mysql_database: MySQL database name (default:"wordpress_test")mysql_user: MySQL username (default:"root")mysql_password: MySQL password (default:"")
Output
Returns JSON with test results:
json
{
"status": "passed|failed",
"component": "component-name",
"output": "test output...",
"exit_code": 0
}Exit Codes
0: Tests passed1: Tests failed2: Infrastructure error (component not found, missing scripts, etc.)
Environment Variables
The following environment variables are set for test runners:
HOMEBOY_EXEC_CONTEXT_VERSION: Protocol version ("1")HOMEBOY_MODULE_ID: Component nameHOMEBOY_MODULE_PATH: Absolute path to extension directoryHOMEBOY_PROJECT_PATH: Absolute path to project directoryHOMEBOY_COMPONENT_ID: Component identifierHOMEBOY_COMPONENT_PATH: Absolute path to component directoryHOMEBOY_SETTINGS_JSON: Merged settings as JSON string
Notes
- Tests run in the component’s environment, not the project’s
- SQLite provides fastest in-memory testing
- MySQL testing requires a running MySQL server
- Component settings can be configured globally via
homeboy config