Skip to content
Snippets Groups Projects
Commit f2305ed7 authored by Alexey Korepov's avatar Alexey Korepov
Browse files

Issue #3470930: Check and report test coverage in GitLab CI

parent 45f93ffc
No related branches found
Tags 2.0.1
No related merge requests found
......@@ -32,8 +32,11 @@ include:
# As long as you include this, any future includes added by the Drupal Association will be accessible to your pipelines automatically.
# View these include files at https://git.drupalcode.org/project/gitlab_templates/
################
- project: $_GITLAB_TEMPLATES_REPO
ref: $_GITLAB_TEMPLATES_REF
-
# project: $_GITLAB_TEMPLATES_REPO
# ref: $_GITLAB_TEMPLATES_REF
project: issue/gitlab_templates-3389338
ref: 3389338-phpunit-coverage
file:
- '/includes/include.drupalci.main.yml'
- '/includes/include.drupalci.variables.yml'
......@@ -49,25 +52,33 @@ include:
#
# Docs at https://git.drupalcode.org/project/gitlab_templates/-/blob/1.0.x/includes/include.drupalci.variables.yml
################
# variables:
# SKIP_ESLINT: '1'
# Test multiple PHP versions from the https://git.drupalcode.org/project/keycdn/-/blob/8.x-1.x/.gitlab-ci.yml
#
# Start custom overrides.
#
# Custom overrides start.
variables:
# Broaden test coverage.
# Temporary disable previous major because of dropping Drupal 9.x support.
# @todo Enable this when Drupal 11 is released.
# OPT_IN_TEST_PREVIOUS_MAJOR: 1
OPT_IN_TEST_MAX_PHP: 1
OPT_IN_TEST_NEXT_MAJOR: 1
# Convenient, and we have no secrets.
_SHOW_ENVIRONMENT_VARIABLES: 1
# OPT_IN_TEST_MAX_PHP: "1"
# OPT_IN_TEST_NEXT_MAJOR: "1"
_CSPELL_IGNORE_PATHS: "src/lib/CoreFeaturesMaps/**"
# Temporary skip not needed jobs:
OPT_IN_TEST_MAX_PHP: "0"
OPT_IN_TEST_NEXT_MAJOR: "0"
SKIP_COMPOSER_LINT: "1"
SKIP_PAGES: "1"
SKIP_PHPCS: "1"
SKIP_PHPSTAN: "1"
# SKIP_PHPUNIT: "1"
SKIP_STYLELINT: "1"
SKIP_ESLINT: "1"
SKIP_CSPELL: "1"
SKIP_NIGHTWATCH: "1"
_PHPUNIT_COVERAGE: "1"
pages:
image:
name: phpdoc/phpdoc
......@@ -85,19 +96,3 @@ composer:
after_script:
- 'grep -qxF " follow: true," web/core/tests/Drupal/Nightwatch/nightwatch.conf.js || sed -i "/ ignore: process.env.DRUPAL_NIGHTWATCH_IGNORE_DIRECTORIES/i\ follow: true," web/core/tests/Drupal/Nightwatch/nightwatch.conf.js'
# A workaround for the issue https://www.drupal.org/project/drupal/issues/3469607 end.
# A workaround for the issue https://www.drupal.org/project/gitlab_templates/issues/3469616 start.
.nightwatch-tests-exist-rule: &nightwatch-tests-exist-rule
- exists:
- tests/src/Nightwatch/**/*.js
- modules/*/tests/src/Nightwatch/**/*.js
# A fix for https://www.drupal.org/project/gitlab_templates/issues/3469616.
- tests/modules/*/tests/src/Nightwatch/**/*.js
when: on_success
.nightwatch-base:
rules:
- !reference [ .opt-in-current-rule ]
- !reference [ .skip-nightwatch-rule ]
- *nightwatch-tests-exist-rule
# A workaround for the issue https://www.drupal.org/project/gitlab_templates/issues/3469616 end.
<?xml version="1.0" encoding="UTF-8"?>
<!-- For how to customize PHPUnit configuration, see core/tests/README.md. -->
<!-- TODO set checkForUnintentionallyCoveredCode="true" once https://www.drupal.org/node/2626832 is resolved. -->
<!-- PHPUnit expects functional tests to be run with either a privileged user
or your current system user. See core/tests/README.md and
https://www.drupal.org/node/2116263 for details.
-->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="tests/bootstrap.php" colors="true"
beStrictAboutTestsThatDoNotTestAnything="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutChangesToGlobalState="true"
failOnWarning="true"
printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter"
cacheResult="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<php>
<!-- Set error reporting to E_ALL. -->
<ini name="error_reporting" value="32767"/>
<!-- Do not limit the amount of memory tests take to run. -->
<ini name="memory_limit" value="-1"/>
<!-- Example SIMPLETEST_BASE_URL value: http://localhost -->
<env name="SIMPLETEST_BASE_URL" value=""/>
<!-- Example SIMPLETEST_DB value: mysql://username:password@localhost/databasename#table_prefix -->
<env name="SIMPLETEST_DB" value=""/>
<!-- Example BROWSERTEST_OUTPUT_DIRECTORY value: /path/to/webroot/sites/simpletest/browser_output -->
<env name="BROWSERTEST_OUTPUT_DIRECTORY" value=""/>
<!-- By default, browser tests will output links that use the base URL set
in SIMPLETEST_BASE_URL. However, if your SIMPLETEST_BASE_URL is an internal
path (such as may be the case in a virtual or Docker-based environment),
you can set the base URL used in the browser test output links to something
reachable from your host machine here. This will allow you to follow them
directly and view the output. -->
<env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/>
<!-- Deprecation testing is managed through Symfony's PHPUnit Bridge.
The environment variable SYMFONY_DEPRECATIONS_HELPER is used to configure
the behavior of the deprecation tests.
See https://symfony.com/doc/current/components/phpunit_bridge.html#configuration
Drupal core's testing framework is setting this variable to its defaults.
Projects with their own requirements need to manage this variable
explicitly.
-->
<!-- To disable deprecation testing completely uncomment the next line. -->
<!-- <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/> -->
<!-- Deprecation errors can be selectively ignored by specifying a file of
regular expression patterns for exclusion.
See https://symfony.com/doc/current/components/phpunit_bridge.html#ignoring-deprecations
Uncomment the line below to specify a custom deprecations ignore file.
NOTE: it may be required to specify the full path to the file to run tests
correctly.
-->
<!-- <env name="SYMFONY_DEPRECATIONS_HELPER" value="ignoreFile=.deprecation-ignore.txt"/> -->
<!-- Example for changing the driver class for mink tests MINK_DRIVER_CLASS value: 'Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver' -->
<env name="MINK_DRIVER_CLASS" value=''/>
<!-- Example for changing the driver args to mink tests MINK_DRIVER_ARGS value: '["http://127.0.0.1:8510"]' -->
<env name="MINK_DRIVER_ARGS" value=''/>
<!-- Example for changing the driver args to webdriver tests MINK_DRIVER_ARGS_WEBDRIVER value: '["chrome", { "chromeOptions": { "w3c": false } }, "http://localhost:4444/wd/hub"]' For using the Firefox browser, replace "chrome" with "firefox" -->
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value=''/>
</php>
<testsuites>
<testsuite name="unit">
<file>./tests/TestSuites/UnitTestSuite.php</file>
</testsuite>
<testsuite name="kernel">
<file>./tests/TestSuites/KernelTestSuite.php</file>
</testsuite>
<testsuite name="functional">
<file>./tests/TestSuites/FunctionalTestSuite.php</file>
</testsuite>
<testsuite name="functional-javascript">
<file>./tests/TestSuites/FunctionalJavascriptTestSuite.php</file>
</testsuite>
<testsuite name="build">
<file>./tests/TestSuites/BuildTestSuite.php</file>
</testsuite>
</testsuites>
<listeners>
<listener class="\Drupal\Tests\Listeners\DrupalListener">
</listener>
</listeners>
<!-- Settings for coverage reports. -->
<coverage>
<include>
<!-- <directory>${CI_PROJECT_DIR}/web/modules/custom</directory> -->
<directory>/var/www/html/web/modules/contrib/test_helpers</directory>
</include>
<exclude>
<!-- Ignore files with Drupal Core services assets -->
<directory>src/lib/CoreFeaturesMaps</directory>
<directory>tests/src</directory>
<directory>tests/modules/*/tests/src</directory>
</exclude>
</coverage>
</phpunit>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment