NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #3642 most downloaded on Packagist
A command line interface for WooCommerce Quality Insights Toolkit (QIT).
Last release 22 days ago
16 Sep 2026
Ships unpredictably
gaps range from 1 weeks to 10 months
Nearly every release is documented
notes for 51 of 53 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
53 releases · first in 2023
One column per quarter.
Define local environments from WordPress Playground Blueprints
Local QIT environments can be defined with a WordPress Playground Blueprint:
qit env:up --blueprint=./blueprint.json
qit run:e2e my-plugin --blueprint=./blueprint.json --test-package=./my-testsNo Playground is involved — the Blueprint is translated into a normal QIT Docker environment. blueprint:import and blueprint:export expose the conversion in both directions without booting anything, so a QIT environment can also be shared back as a Playground link.
Supported on env:up, run:e2e, run:woo-e2e and run:woo-api, for e2e environments only.
qit compare for diffing two finished test runsqit compare <run-a> <run-b> diffs two finished test runs without re-running anything:
qit compare 12345 12346
qit compare 12345 12346 --format=json --exit-codeIt reports introduced, resolved and still-failing tests; tests added or removed; summary counts side by side; and a per-test diff of extra.annotations. The diff works on CTRF test names and statuses, so it serves every CTRF-reporting test type.
Ecosystem canary runs get two extra rules. A finding whose signature moved to a different probe is reported as moved rather than as a regression and a fix at once. A baseline finding missing from a probe that stopped early is reported as unverified rather than resolved.
run:woo-e2e and run:activation pick their test package from the WooCommerce version under test instead of always using latest, so a run on 11.0.1 no longer executes specs written for 11.1.nightly activation package instead of falling back to latest.qit list-tests runs again. It sends a test_types filter only when one is given, and rejects unknown types locally, naming the allowed values.If you have questions, encounter issues, or have suggestions, open a GitHub issue or run qit feedback "your message".
Full Changelog: 1.3.1...1.3.2
Added authenticated beta API fuzz testing
The new qit run:api-fuzz <extension> command runs schema-driven fuzz testing against plugin-owned WordPress REST API routes. It supports published extensions, uploaded development builds, synchronous and asynchronous execution, and normalized JSON results.
Lifecycle status is shown separately from the fuzz campaign state. The command waits up to 45 minutes by default, treats cancellation as terminal, and preserves the established QIT exit codes for success, warning, and failure.
See API Fuzz Testing for scope, campaign limits, result interpretation, and examples.
run:* commands now accept a local ZIP, local directory, or remote HTTP(S) ZIP through --zip.run:* commands now return failure exit code 1 when the Manager lifecycle status is hanged.qit get displays the API-fuzz campaign state and treats a cancelled run as finished.If you have questions, encounter issues, or have suggestions, open a GitHub issue or run qit feedback "your message".
Full Changelog: 1.3.0...1.3.1
Removed a deprecated ReflectionProperty::setAccessible() call (now guarded to PHP < 8.1) and redundant curl_close() calls, silencing deprecation notic…
run:compatibility command for compatibility smoke testsA new run:compatibility command runs WooCommerce compatibility smoke tests against your extension. When no test package is specified, it defaults to woocommerce/compatibility-smoke-tests:latest.
qit run:compatibility my-plugin
qit run:compatibility my-plugin --zip=my-plugin.zip --wait
Local test runs now also report each extension's requested version (not just the resolved version) to QIT Manager, enabling versioned compatibility reporting.
Downloads that returned an HTTP error (404, 403, 5xx) or an empty body were written to disk anyway, so a "Not found" page could masquerade as the downloaded zip and only fail later as a confusing "invalid zip" error. The CLI now validates the HTTP status and file size immediately after download, deletes the bad file, and fails with a message naming the real cause.
WooCommerce development builds (x.y.z-dev) change frequently but were cached with the long-lived TTL, so in-place rebuilds could be missed. They now use the short cache TTL alongside rc and nightly.
Plugin activation failures now surface a clearer, structured report (plugin, debug log, output) and the runner bails correctly on a fatal activation error instead of continuing.
Removed a deprecated ReflectionProperty::setAccessible() call (now guarded to PHP < 8.1) and redundant curl_close() calls, silencing deprecation notices on newer PHP versions.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.2.4...1.3.0
Fixed local --zip runs reusing a stale cached build after rebuilding in place
--zip runs reusing a stale cached build after rebuilding in placeWhen running tests against a local zip, the CLI caches the file using a key derived from its path. Overwriting the same zip in place, for example rebuilding a plugin to the same filename, left the previously cached copy in place, so subsequent runs tested the old build. Moving the zip to a new path was the only workaround.
The CLI now re-copies a local zip into the cache when the source file is newer or a different size than the cached copy, so in-place rebuilds are picked up automatically. Unchanged files continue to use the cache with no extra work.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.2.3...1.2.4
Fixed intermittent "manager sync data bucket for 'versions' is not available" error in CI
Resolved a race condition that could cause test runs to fail with
Failed to parse environment JSON and The manager sync data bucket for 'versions' is not available,
most often on cold CI runners using --woocommerce_version=rc or --wordpress_version=rc.
The sync data that resolves these versions is cached with a short TTL and refreshed at
CLI startup. Slow setup steps — package download, npm install, and Playwright browser
installation — could elapse past that TTL before the version was resolved, leaving the
cache pruned. The CLI now re-syncs on demand when the data has expired instead of failing.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.2.2...1.2.3
Restored previous --extension_set behavior for test runs
--extension_set behavior for test runsRestores the previous --extension_set behavior when running tests, which enqueues run:woo-api, run:woo-e2e, and run:activation on QIT servers. This allows compatibility-set extensions to be resolved by QIT Manager, including restricted WooCommerce.com plugins such as woocommerce-gift-cards, while preserving the existing local test-package behavior when --extension_set is not used.
qit run:woo-api my-plugin --extension_set=compatibility
qit run:woo-e2e my-plugin --zip=my-plugin.zip --extension_set=compatibility --wait
CLI options that only apply to local test-package runs now fail clearly when combined with --extension_set, instead of being silently ignored.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.2.1...1.2.2
Restored --extension_set option for run:woo-api and run:woo-e2e
--extension_set option for run:woo-api and run:woo-e2eThe --extension_set option was missing from the run:woo-api and run:woo-e2e commands. It is now declared and resolved on each command, expanding the named set into its extensions and merging them into --plugin.
qit run:woo-e2e my-plugin --extension_set=my-set
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.2.0...1.2.1
Run WooCommerce Core E2E tests locally against your extension using the self-contained woocommerce/core-e2e-tests:latest test package.
run:woo-e2e commandRun WooCommerce Core E2E tests locally against your extension using the self-contained woocommerce/core-e2e-tests:latest test package.
qit run:woo-e2e my-plugin
run:woo-api commandRun WooCommerce Core API tests locally against your extension using the self-contained woocommerce/core-api-tests:latest test package.
qit run:woo-api my-plugin
When credentials had expired, the CLI would hang indefinitely on authentication instead of failing gracefully with a clear error message.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.1.9...1.2.0
Fixed --json output for synchronous test runs
--json output for synchronous test runsWhen using --json with synchronous run commands (e.g., qit run:security my-plugin --json), the output contained progress messages and table-formatted text wrapped in an error JSON object instead of clean test result JSON. This happened because the --json flag was only handled in CI mode — interactive terminal sessions ignored it entirely, causing the stream filter to emit all human-readable output as {"error":"Command failed with non-JSON output","output":"..."}.
The --json flag now works correctly in all environments and the completed test result is output as clean, pretty-printed JSON.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.1.8...1.1.9
JSON output improvements for AI agents and scripts
The --json output for get, get-multiple, and run:e2e now decodes embedded JSON fields (ctrf_json, test_result_json, debug_log) into proper JSON objects instead of returning them as escaped strings (JSON-in-JSON). This makes the output directly parseable by AI agents and tools like jq.
--json-results flagA new --json-results flag on get and get-multiple outputs only the test results as clean JSON — no metadata, no URLs. Returns CTRF results if available, otherwise falls back to test_result_json.
qit get 12345 --json-results | jq '.results.summary'New qit feedback "message" command to send feedback directly to the QIT team. Automatically includes CLI version, PHP version, and OS info. Messages are limited to 2000 characters; for detailed reports, users are directed to GitHub issues.
qit feedback "The security test gave an unexpected result for my plugin"Contextual hints now appear after test failures and API errors suggesting qit feedback.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page or run qit feedback "your message".
Full Changelog: 1.1.7...1.1.8
Configurable HTTP timeout for environments
Control nginx and PHP-FPM timeouts with a new --timeout flag:
qit env:up --timeout=2 --xdebug # Fast 504 for xdebug+Playwright debugging
qit env:up --timeout=30 # Custom timeout in secondsDefault remains 600s. Also configurable via qit.json:
{
"environments": {
"default": {
"timeout": 2
}
}
}When using xdebug with Playwright MCP for PHP debugging, setting --timeout=2 causes nginx to return 504 after 2 seconds instead of holding the connection for 60s while PHP-FPM is paused at a breakpoint. The xdebug session on port 9003 stays alive and inspectable.
New config:set and config:get commands (dev-mode only) for managing QIT configuration values.
--woo=9.0.0 or --plugin=akismet:5.6), the download URL now correctly points to the requested version instead of always downloading the latest.RemoteTestPrecedenceTest::test_zip_upload_option_for_remote_test path bug.test_additional_plugins_conversion assertion to match actual CLI behavior.test_cli_slug_wins_and_emits_warning.Integration tests no longer download real plugin/theme zips from WordPress.org or make live API calls during left-side tests. A fixture system serves committed local responses:
QIT_REQUEST_LOG) for auditing network activity during testsThe fixture guard fails loudly if a test attempts a download or API call without a fixture, preventing silent network regressions.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
Full Changelog: 1.1.6...1.1.7
Enable PHP step debugging, profiling, or tracing with a single flag:
Enable PHP step debugging, profiling, or tracing with a single flag:
qit env:up --xdebug # Step debugging (default)
qit env:up --xdebug=profile # Cachegrind profiling
qit env:up --xdebug=trace # Function call tracing
qit env:up --xdebug=debug,develop # Combined modes
Xdebug is pre-installed in all runner images with mode=off (zero overhead). The --xdebug flag writes an ini override and restarts PHP-FPM — no compilation or network downloads needed.
Also configurable via qit.json:
{
"environments": {
"default": {
"xdebug": true
}
}
}
The environment summary shows IDE path mappings and the output directory for cachegrind/trace files.
Documentation: https://qit.woo.com/docs/environment/xdebug
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
A new npm package that gives test packages a standard way to interact with QIT and each other at runtime. Two access patterns:
@woocommerce/qit-runtime)A new npm package that gives test packages a standard way to interact with QIT and each other at runtime. Two access patterns:
qit.actions('makePurchase') - Anonymous capability discovery. Like WordPress do_action(), multiple packages register implementations for the same action name. Consumers iterate over all of them. Adding a payment gateway = zero code changes in the consumer.qit.package('woocommerce/core-utils') - Known dependency access. Import another package's exports directly (page objects, login helpers, etc).Also provides typed environment access (qit.env.siteUrl), WP-CLI execution (qit.wp()), and async polling (qit.waitFor()).
New packages scaffolded with qit package:scaffold include it automatically.
Documentation: https://qit.woo.com/docs/test-packages/concepts/runtime
Test packages can now declare actions in their qit-test.json manifest:
{
"actions": {
"makePurchase": "./flows/pay.ts"
}
}
QIT CLI generates the actions manifest and package map at test execution time, wiring qit.actions() and qit.package() to the loaded test packages.
$schema validation blocking existing test packagesThe $schema field in qit-test.json is for IDE support. A strict const constraint was rejecting packages that used a different schema URL (e.g., qit.woo.com vs GitHub raw). Removed the constraint and added a filter so $schema mismatches never block execution.
run:e2e failuresErrors like "Missing required secrets" were rendered as a double-wrapped JSON mess. Now they display cleanly:
Missing required secrets:
* E2E_JP_SITE_ID (required by: woocommerce-payments/woopayments-e2e-tests:1.3.0)
Set these environment variables before running this command.
Example: export E2E_JP_SITE_ID='your-secret-value'
When a test package has an older version of @woocommerce/qit-runtime installed, QIT CLI now warns with an actionable message instead of silently continuing.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
Fixed a bug where two different test packages with the same relative script path (e.g. ./bootstrap/global-setup.sh) would collide in the globalSetup d
Fixed a bug where two different test packages with the same relative script path (e.g. ./bootstrap/global-setup.sh) would collide in the globalSetup dedup logic, silently skipping the second package's setup. The hash now includes the package path, so only subpackages from the same parent (which genuinely share the same script) are deduplicated.
When spinning up an environment with env:up or run:e2e, QIT now checks if any plugins in the environment have recommended utility packages available. If so, a tip is shown:
Tip: Utility packages are available for plugins in this environment:
--test-package=woocommerce/baseline:latest
The tip is suppressed when the utility is already included or in JSON output mode.
woocommerce/baselineA new woocommerce/baseline:latest utility package is available on the registry. It dismisses WooCommerce activation redirects, onboarding wizards, coming-soon mode, and configures a ready-to-test store baseline. Include it in any environment that has WooCommerce to prevent activation interference with tests.
--keep-env flag for post-failure debuggingAdded --keep-env flag to run:e2e that keeps the environment running after test failures, making it easier to debug issues interactively.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
Environment state is now tracked directly on the filesystem instead of a separate cache. Each environment stores its metadata as env_info.json in its
Environment state is now tracked directly on the filesystem instead of a separate cache. Each environment stores its metadata as env_info.json in its temp directory, eliminating "ghost" environments that appeared in env:list when containers were killed externally.
EnvironmentDanglingCleanup has been removed — no longer needed since the filesystem is the single source of truth.env:source has been simplified to use the same source of truth as all other environment commands.env:down --all — Stop all running environments with a flag (previously only available as a positional argument env:down all).env:list --json — Machine-readable JSON output for scripting and AI agent consumption.If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
Corrected the link to the how to update QIT CLI documentation.
Corrected the link to the how to update QIT CLI documentation.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
This release introduces AI-assisted development as a first-class QIT workflow via the Claude Code plugin system.
This release introduces AI-assisted development as a first-class QIT workflow via the Claude Code plugin system.
QIT CLI is now a Claude Code plugin marketplace. Install with two commands in Claude Code:
/plugin marketplace add woocommerce/qit-cli
/plugin install qit@woocommerce-qit
Claude can then handle any QIT task autonomously — running tests, creating test packages, debugging failures, configuring projects — by fetching live documentation on demand.
Daily plugin recommendation — First CLI invocation of the day shows a brief tip about the Claude Code plugin. Dismiss permanently with qit claude-tip:dismiss.
Post-connect tip — After successful qit connect, users see the plugin install instructions.
$schema URLs now resolve. The --with-schema flag on qit package:scaffold and $schema fields in qit.json/qit-test.json now point to GitHub raw URLs that actually serve valid JSON Schema, enabling IDE autocompletion and validation.ai:context, ai:claude-setup, ai:install-agents commands and all supporting infrastructure (AgentVersionChecker, agent templates, CLAUDE.qit.md template). Replaced by the Claude Code plugin.If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
This release focuses on consistency, stability, and developer experience improvements across configuration, environments, and performance.
This release focuses on consistency, stability, and developer experience improvements across configuration, environments, and performance.
--wp, --woo, --php short aliases now work in qit.json profiles, not just CLI flags. Previously they were silently ignored in config files.qit.json profiles were dropped when run:e2e dispatched to env:up.env:list polling) no longer destroy containers mid-creation.partner:add.run:e2e succeeding silently without a SUT — now fails fast with a clear error.If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page.
This is a minor release that restores the missing extension_set option from the activation tests.
This is a minor release that restores the missing extension_set option from the activation tests.
We are excited to announce QIT CLI 1.0.0! This major release introduces a new test package system, project-level configuration via qit.json, and much
We are excited to announce QIT CLI 1.0.0! This major release introduces a new test package system, project-level configuration via qit.json, and much more.
New Test Package System
A complete overhaul of the custom test system. Test packages use a qit-test.json manifest format with support for lifecycle phases (global_setup, run, global_teardown), subpackages, CTRF report validation, and Allure reporting.
Scaffold Command
Quickly create new test packages with qit package:scaffold, which generates the manifest and directory structure for you.
Utility Package Type
Test packages can now declare a utility type for shared helpers and setup logic, supported across env:up, run:e2e, package:show, and the scaffold command.
Auto-Install Required Extensions Extensions declared in test package manifests are automatically resolved and installed during environment setup.
Network Requirements
Test packages can declare requires.network to automatically configure tunnels for tests needing external network access.
run:group Command
Run grouped test suites in a single command, making it easy to execute a coordinated set of tests together.qit.json Configuration File
Define test configuration — SUT, plugins, themes, PHP/WP/Woo versions, and profiles — in a project-level JSON config file with schema validation. This makes it easy to check your test setup into source control.
Version Option Aliases
--php, --wp, and --woo are now short aliases for --php_version, --wordpress_version, and --woocommerce_version across all run commands.
env:reset Command
Reset a running environment back to its initial state, useful for manual testing workflows.
Infrastructure Provider Abstraction
A new --provider flag on env:up introduces provider abstraction, paving the way for future cloud-based environments.
ai:context and ai:setup Commands
Get structured context for AI agents to investigate test failures, with Claude Code integration via the ai:setup command.If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback is invaluable and helps us continuously enhance the QIT CLI tool.
Enhanced Pre-Activation Step Handling The activation testing process now explicitly runs the pre-activation step for all plugins in the activation sta
Enhanced Pre-Activation Step Handling
The activation testing process now explicitly runs the pre-activation step for all plugins in the activation stack. This ensures that the default bootstrap behavior occurs at the appropriate time during the setup phase.
Better Multi-Plugin Testing Support
This update improves compatibility testing scenarios involving multiple plugins, particularly when running activation tests with additional plugins that have custom tests configured.
JSON Output Support for Group Fetch
Added a new --json flag to the group:fetch command that allows retrieving test group information in raw JSON format.
Improved Group Management UX
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback is invaluable and helps us continuously enhance the QIT CLI tool.
Minor release to ignore some PHP debug log entries in the Activation Test that are not coming from the SUT, and might cause the test to become a Warni
Minor release to ignore some PHP debug log entries in the Activation Test that are not coming from the SUT, and might cause the test to become a Warning instead of a Success.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
We are excited to announce the release of QIT CLI version 0.9.0! This update introduces powerful new features for managing grouped and batched tests,
We are excited to announce the release of QIT CLI version 0.9.0! This update introduces powerful new features for managing grouped and batched tests, making it easier to organize and execute multiple tests in a coordinated manner.
group:register - Register test groups with custom identifiersgroup:run - Execute registered test groupsgroup:fetch - Retrieve group information from remotegroup:show - Display current group status and details--skip-grouping for batch processing without logical groupingqit run:activation your-extension --group --extension_set compatibility
qit group:register --group-identifier commit-1234567890
qit group:run
For detailed information about the new grouping and batching features, please visit our group tests documentation.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Another batch of bug fixes mainly around Custom Tests architecture.
Another batch of bug fixes mainly around Custom Tests architecture.
Please keep in mind that the support policy of QIT CLI is to only support the latest version. Make sure to always be on the latest version, especially on CI workflows. Some updates are required and the tool might exit early with an update prompt if you are not on the latest version.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
*This release is all about squashing bugs!*
<img src="./img/bug-squash.png" alt="Bug Squashing" style="max-width:600px; height:auto;" />
This release is all about squashing bugs!
This PR includes several bug fixes for the QIT CLI, especially around test types that uses the Custom Tests platform, such as run:e2e, run:activation, and env:up.
--theme argument, that theme (and its parent, if it’s a child theme) is now automatically activated.qit get Command: Removes unnecessarily long columns for cleaner output.--json: Ensures errors are properly displayed in JSON output.ConfigurationProcessor: Simplifies early setup by removing extra configuration processing.If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Improve qit get command by removing some verbose output and making sure the display is rendered correctly without breaking links.
Improve qit get command by removing some verbose output and making sure the display is rendered correctly without breaking links.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Ignoring more deprecation warnings when using extension sets, and better control over Playwright tests via tag filtering.
Ignoring more deprecation warnings when using extension sets, and better control over Playwright tests via tag filtering.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Ignoring some common deprecation warnings when using extension sets.
Ignoring some common deprecation warnings when using extension sets.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Extension set support in local activation tests.
Extension set support in local activation tests.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Several bug fixes and error handling improvements.
Several bug fixes and error handling improvements.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Shared Setup/Teardown in Bootstrap Mode Additional plugins designated as *bootstrap* now properly execute their shared setup and teardown steps even i
Shared Setup/Teardown in Bootstrap Mode
Additional plugins designated as bootstrap now properly execute their shared setup and teardown steps even if their test suites are skipped. This ensures the bootstrap phase correctly prepares the testing environment for all involved plugins.
Automatic WooCommerce Dependency Handling
QIT now ensures that if WooCommerce is a required dependency for your plugin (as determined by WooCommerce.com product metadata - soon to be updated to use your plugin’s "Requires Plugins" header), it is automatically included.
Enhanced Parameter Handling (--tunnel, --dependencies)
QIT now lists all possible values for these parameters, making it easier to discover valid options.
Action Overrides for Additional Plugins
CLI overrides specified at runtime (e.g., -p plugin:action or --plugin plugin:action) now reliably take precedence over qit.yml settings.
Corrected Path in dependencies.json
Fixed a typo referencing qit/dependencies.json. The correct file path is now bootstrap/dependencies.json, ensuring dependencies load as intended.
Complete Documentation Rewrite
The QIT documentation at qit.woo.com has been entirely rewritten from scratch. The new documentation provides clearer explanations, step-by-step guides, and updated references to reflect recent orchestration improvements and configuration refinements.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback helps us continually improve QIT.
Optimized Database Lifecycle Management Improved the database (DB) lifecycle handling during Custom E2E tests, particularly for compatibility testing
Optimized Database Lifecycle Management
Improved the database (DB) lifecycle handling during Custom E2E tests, particularly for compatibility testing involving multiple plugins.
Streamlined Lifecycle Steps
The updated lifecycle now follows these steps:
Flexible State Management
This update allows you to:
For a detailed understanding of the new lifecycle management, please refer to our Understanding the Lifecycle documentation.
If you have any questions, encounter issues, or have suggestions, please visit our GitHub Issues Page. Your feedback is invaluable and helps us continuously enhance the QIT CLI tool.
Adds --env and --env_file to run:e2e, run:activation and env:up commands.
--env and --env_file to run:e2e, run:activation and env:up commands.Check the documentation for Environment Variables.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
We are excited to announce the release of QIT CLI version 0.7.0! This update introduces tunneling support, along with UX/developer experience improvem
We are excited to announce the release of QIT CLI version 0.7.0! This update introduces tunneling support, along with UX/developer experience improvements.
You can find the documentation for Tunneling here.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
We are excited to announce the release of QIT CLI version 0.6.0! This update introduces the Activation Test 2.0, our first smart generic test, along w
We are excited to announce the release of QIT CLI version 0.6.0! This update introduces the Activation Test 2.0, our first smart generic test, along with several enhancements designed to improve your testing workflow.
This is the first test type built on top of our Custom Tests platform!
PHP Versions: Test with PHP 7.2 up to 8.4 RC 3.
WooCommerce & WordPress Versions: Choose any version, including development builds.
You can find the documentation for the Activation Test type here.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Adds support for a QIT_RESULTS_DIR env var which specifies where to store the e2e results when running run:e2e command.
QIT_RESULTS_DIR env var which specifies where to store the e2e results when running run:e2e command.For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
This is a follow-up to the 0.5.2 release. Fixes an issue with using "--woo" parameter that would cause a Custom E2E test files to not be found.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Fix an error that can happen when using both "--woo" and "--plugin=woocommerce" at the same time when running a Custom E2E Test.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Register a shareable test run in QIT for local custom test runs, with an embedded Allure Report with support for screenshots and videos of failures in
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
New Feature: Local Test Environments: Added the ability to create Local Test Environments with a single command. These environments are disposable and
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
When encountering "429 - Too Many Requests" when starting tests, respect the "Retry-After" header if it's present, otherwise do an exponential backoff
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Fix the config path on native Windows.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
This is a strongly recommended update.
This is a strongly recommended update.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Return async response when using --json flag without waiting for the test completion (with --wait flag).
This is an optional update.
--json flag without waiting for the test completion (with --wait flag).For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Resolved an issue that caused QIT to incorrectly identify certain valid zip files as invalid.
This is an optional update.
For any queries, issues, or suggestions, feel free to visit our Github page at https://github.com/woocommerce/qit-cli/issues. We appreciate your feedback as it helps us to continuously improve our tool.
Improved onboarding experience for Automatticians.
This is an optional update.
-vvv parameter). GitHub already obfuscates any secret in output, but this is an additional measure.Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
Improve QIT update logic, informing when there's an optional update available, or enforcing when there's a required update to be done.
Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
Suggest an unique app name to be able to run partner:add multiple times without having to delete previous application passwords.
Suggest an unique app name to be able to run partner:add multiple times without having to delete previous application passwords.
Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
Nothing published for this version
Improvements to the partner authentication flow.
Improvements to the partner authentication flow.
Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
In this release we prepare the CLI to be usable by all Partner developers of the Woo Marketplace.
In this release we prepare the CLI to be usable by all Partner developers of the Woo Marketplace.
We have reworked the onboarding flow to be more user-friendly both to Automattic and external developers, along with dozens of other improvements.
Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
Nothing published for this version
This is the first release of the QIT CLI. Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
This is the first release of the QIT CLI. Please ask any questions/report any issues at https://github.com/woocommerce/qit-cli/issues
Your coding agent can read these notes before it upgrades. Set up the MCP server →