All Skills
Debug a failing test or build error in WooCommerce iOS
Wdebug
$
npx skills add woocommerce/woocommerce-ios --skill debugDebug a build failure or test failure in the WooCommerce iOS project.
For Build Failures
- Run the build and capture errors:
bundle exec fastlane build_for_testing 2>&1 \
| grep -E "error:|fatal|cannot find|undefined|ambiguous" | head -30
- Identify the failing file and error type
- Read the failing file and surrounding context
- Common root causes in this codebase:
- Missing module: Check Modules/Package.swift target dependencies
- Type mismatch: A Networking model changed — check if Yosemite/Storage need updates
- Cannot find type: May need
bundle exec rake generateafter adding GeneratedCopiable/Fakeable - Ambiguous reference: Duplicate type names across Networking vs Storage
- CoreData model errors: Check Storage/CoreData/ model versions
- Propose or apply the fix
For Test Failures
- Run the specific failing test (targeted tests require
xcodebuilddirectly):
xcodebuild -workspace WooCommerce.xcworkspace -scheme WooCommerce \
-destination 'platform=iOS Simulator,name=iPhone 16' \
-sdk iphonesimulator test \
-only-testing:"<target>/<class>/<method>" 2>&1 | tail -50
- Read the test file and understand what it expects
- Read the implementation file being tested
- Check the mock class setup
- Common test failure patterns:
- Assertion mismatch: Verify expected vs actual, check mock stub values
- Async timeout: Check if mock callbacks are being invoked, verify continuation setup
- Nil unwrap: Check if mock return values are configured
- Wrong mock state: Verify spy properties are set correctly
- CoreData errors: Ensure InMemoryStorage is used, not persistent storage
- Missing @MainActor: Some tests need MainActor annotation
- Propose or apply the fix
If the simulator destination fails, run xcrun simctl list devices available to discover available simulators, then re-run with a matching device name.