Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

C3 Laravel Package

codeception/c3

C3 is Codeception’s remote code coverage helper for PHP apps. It collects coverage from web/functional tests by instrumenting your entry point and forwarding results back to the test runner, making it easy to measure coverage on remote servers and CI.

View on GitHub
Deep Wiki
Context7

Remote CodeCoverage for Codeception. Part of Codeception testing framework.

Frequently asked questions about C3
How does codeception/c3 improve Laravel test coverage in CI pipelines?
codeception/c3 collects coverage data remotely from distributed test environments (e.g., Docker containers or Kubernetes pods) and merges it into a single report. This is critical for Laravel apps running parallelized functional or acceptance tests in CI, where local coverage tools like Xdebug fail to aggregate results accurately. It ensures full coverage visibility without manual merging.
Can I use codeception/c3 with Laravel’s built-in testing tools (PHPUnit/Pest) instead of Codeception?
No, codeception/c3 is designed exclusively for Codeception. If your Laravel project uses PHPUnit or Pest, you’ll need alternatives like PCOV or Xdebug for coverage. Migrating to Codeception just for c3’s features may not be worth the effort unless you’re already using its BDD syntax for acceptance or API tests.
What Laravel versions and PHP versions does codeception/c3 support?
codeception/c3 supports PHP 7.4+, which aligns with Laravel’s minimum PHP 8.0+ requirement. Since Laravel 5.8+, all modern versions (Laravel 8/9/10) are compatible as long as you’re using Codeception 4.5+. The package itself doesn’t enforce Laravel-specific constraints but relies on Codeception’s Laravel integration modules.
How do I configure codeception/c3 for remote coverage in a Dockerized Laravel app?
First, install the package via Composer and configure the `C3` module in your `codeception.yml` under your suite (e.g., `api` or `acceptance`). Then, expose a remote endpoint (e.g., a temporary HTTP server or CI-provided URL) where containers can upload coverage data. Use Docker’s network settings to ensure containers can reach the endpoint, and validate with `curl` before running tests.
Does codeception/c3 work with Laravel’s built-in API testing helpers?
Yes, codeception/c3 integrates with Codeception’s `ApiTester` module, which is commonly used for Laravel API testing. The remote coverage data will include routes, controllers, and services exercised during API tests. However, ensure your `codeception.yml` includes both the `ApiTester` and `C3` modules under your API suite configuration.
Will codeception/c3 slow down my Laravel test suite in CI?
codeception/c3 relies on Xdebug for coverage collection, which can introduce overhead. To mitigate this, use Xdebug 3+ with optimized settings like `xdebug.mode=coverage` and disable profiling (`xdebug.profiler_enable=0`). For CI, consider running coverage collection only in specific test groups or using parallel jobs to distribute the load.
How do I merge codeception/c3 coverage reports with existing tools like Codecov or Scrutinizer?
codeception/c3 outputs Clover or Crap4j format reports, which can be uploaded to Codecov or Scrutinizer via their CLI tools or CI integrations. Use a post-test script to combine c3’s remote reports with local coverage data (e.g., from PHPUnit) using tools like `clover-merger` or custom scripts. Ensure your CI pipeline handles the merging step before uploading.
Can I use codeception/c3 for unit tests in Laravel, or is it only for functional/acceptance?
codeception/c3 is primarily designed for functional and acceptance tests, where remote coverage collection is most valuable due to distributed execution. Unit tests in Laravel typically run locally and don’t benefit from remote collection. For unit test coverage, stick with PHPUnit’s built-in tools or PCOV, and reserve c3 for higher-level test suites.
What are the alternatives to codeception/c3 for remote Laravel test coverage?
Alternatives include using PHPUnit with PCOV (for local coverage) or Xdebug + third-party tools like Codecov or Scrutinizer for remote uploads. For Laravel apps using Pest, consider `pestphp/pest-plugin-coverage` with PCOV. If you’re open to non-Codeception solutions, tools like `php-coveralls` or `jacoco` (via Java bridges) can also aggregate coverage from distributed environments.
How do I troubleshoot codeception/c3 failing to collect coverage in Kubernetes?
Check if pods can reach the remote coverage endpoint by testing connectivity from within the pod (e.g., `curl http://<endpoint>/upload`). Ensure the endpoint is stable and not rate-limited. Verify Xdebug is enabled in your Laravel container (`xdebug.mode=coverage`) and that the `C3` module is properly configured in `codeception.yml`. Debug logs in Codeception (`-vvv` flag) often reveal misconfigurations like missing modules or endpoint issues.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai