Files
wp-plugin-starter-template-…/tests
marcusquinn c17b6f1818 Fix remaining CI/CD issues
- Add yoast/phpunit-polyfills ^2.0 to composer.json for WordPress test suite compatibility
- Define WP_TESTS_PHPUNIT_POLYFILLS_PATH in bootstrap.php before loading WP test framework
- Update actions/cache to v4 (deprecated SHA references cause failures)
- Update actions/setup-java to v4
- Update codacy/codacy-analysis-cli-action to v4 tag (SHA ref not found)
- Update github/codeql-action/upload-sarif to v3
2025-11-24 19:38:01 +00:00
..
2025-11-24 19:38:01 +00:00

Plugin Tests

This directory contains test files for the plugin.

Test Structure

  • bootstrap.php: Sets up the test environment
  • test-core.php: Tests for the Core class
  • test-admin.php: Tests for the Admin class
  • Add more test files as needed for additional classes

Running Tests

To run the tests, you need to have PHPUnit and WP Mock installed. You can install them using Composer:

composer install

Then, run the tests:

./vendor/bin/phpunit

Writing Tests

When writing tests:

  1. Create a new file named test-{class-name}.php for each class you want to test
  2. Extend the WP_Mock\Tools\TestCase class
  3. Use WP Mock to mock WordPress functions
  4. Write test methods for each method in your class

Example:

<?php
use WPALLSTARS\PluginStarterTemplate\YourClass;

class YourClassTest extends WP_Mock\Tools\TestCase {
    public function setUp(): void {
        parent::setUp();
        WP_Mock::setUp();
    }

    public function tearDown(): void {
        WP_Mock::tearDown();
        parent::tearDown();
    }

    public function test_your_method() {
        // Set up mocks
        WP_Mock::userFunction('wp_function', [
            'times' => 1,
            'args' => ['argument'],
            'return' => 'result',
        ]);

        // Create instance of your class
        $instance = new YourClass();

        // Call the method
        $result = $instance->your_method('argument');

        // Assert the result
        $this->assertEquals('expected result', $result);
    }
}

Test Coverage

To generate a test coverage report:

./vendor/bin/phpunit --coverage-html coverage

This will generate an HTML report in the coverage directory.

Continuous Integration

The tests are automatically run on GitHub Actions when you push to the repository. See the .github/workflows/tests.yml file for details.