Fix PHPUnit tests and SonarCloud analysis

This commit is contained in:
2025-04-23 12:42:13 +01:00
parent 859161fd0c
commit ca5a9cf38b
4 changed files with 41 additions and 17 deletions

View File

@@ -110,7 +110,7 @@ jobs:
restore-keys: ${{ runner.os }}-sonar
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
uses: SonarSource/sonarqube-scan-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

View File

@@ -28,7 +28,7 @@ jobs:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
uses: SonarSource/sonarqube-scan-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<phpunit
bootstrap="tests/bootstrap.php"
bootstrap="tests/phpunit/bootstrap.php"
backupGlobals="false"
colors="true"
convertErrorsToExceptions="true"
@@ -10,6 +10,7 @@
<testsuites>
<testsuite name="unit">
<directory prefix="test-" suffix=".php">./tests/</directory>
<directory prefix="test-" suffix=".php">./tests/phpunit/</directory>
</testsuite>
</testsuites>
<filter>

View File

@@ -8,6 +8,8 @@
// Composer autoloader must be loaded before WP_PHPUNIT__DIR will be available.
require_once dirname( dirname( __DIR__ ) ) . '/vendor/autoload.php';
// Check if we're running the WordPress tests
if ( getenv( 'WP_PHPUNIT__DIR' ) ) {
// Give access to tests_add_filter() function.
require_once getenv( 'WP_PHPUNIT__DIR' ) . '/includes/functions.php';
@@ -25,3 +27,24 @@ function _manually_load_plugin() {
// Start up the WP testing environment.
require getenv( 'WP_PHPUNIT__DIR' ) . '/includes/bootstrap.php';
} else {
// We're running the WP_Mock tests
WP_Mock::bootstrap();
/**
* Now we define a few constants to help us with testing.
*/
define('WPST_PLUGIN_DIR', dirname(dirname(__DIR__)) . '/');
define('WPST_PLUGIN_URL', 'http://example.org/wp-content/plugins/wp-plugin-starter-template/');
define('WPST_VERSION', '0.1.0');
/**
* Now we include any plugin files that we need to be able to run the tests.
* This should be files that define the functions and classes you're going to test.
*/
require_once WPST_PLUGIN_DIR . 'includes/class-core.php';
require_once WPST_PLUGIN_DIR . 'includes/class-plugin.php';
if (file_exists(WPST_PLUGIN_DIR . 'admin/lib/admin.php')) {
require_once WPST_PLUGIN_DIR . 'admin/lib/admin.php';
}
}