Opened 5 years ago
Last modified 5 years ago
#52610 new task (blessed)
Consider removing many of the default test group exclusions
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Build/Test Tools | Keywords: | needs-patch dev-feedback |
| Focuses: | multisite | Cc: |
Description (last modified by )
When the tests are run with composer test, the following groups are excluded:
ajaxms-filesms-requiredexternal-http
When the tests are run with Multisite enabled with composer test -- -c tests/phpunit/multisite.xml, the following groups are excluded:
ajaxms-filesms-excludedexternal-httpoembed-headers
The ms-required and ms-excluded group exclusions are needed so that the Multisite-specific tests and single-site-specific tests don't run when they don't need to.
It's less clear why the other groups in these lists are excluded by default.
The ajax and ms-files groups are not slow, so excluding them for performance reasons doesn't make sense. I think the ajax exclusion should be removed from both the single site and Multisite configuration. The ms-files exclusion should be removed too because the tests in the ms-files group don't get registered on a non-Multisite test run so the exclusion is redundant.
The external-http tests are excluded because they are somewhat slow, taking around 10-15 seconds on GitHub Actions and around 40 seconds on my local, highly dependent on network connection speed. Let's keep these excluded by default.
The oembed-headers group is excluded by default because it requires Xdebug, however this is already covered by the @requires function xdebug_get_headers tag on the only test in this group, along with being in the debug group which runs separately on GitHub Actions. The oembed-headers group exclusion can be removed as it's redundant.
Here's my proposed new config for phpunit.xml.dist:
<exclude>
<group>ms-required</group>
<group>external-http</group>
</exclude>
and for multisite.xml:
<exclude>
<group>ms-excluded</group>
<group>external-http</group>
</exclude>
Change History (6)
#3
@
5 years ago
Some history here:
- [924/tests] / #tests49 #tests42 excluded the
ajaxgroup for performance reasons. - [30298] / #30304 excluded the
external-httpgroup for performance reasons. - [30286] / #30256 excluded the
ms-filesgroup from multisite config for a more consistent environment. - [37269] / #36566 excluded the
ms-filesgroup from single site config to avoid pollution when mixed with the rest of the tests. - [40520] / #40531 introduced the
ms-requiredandms-excludedgroups to reduce the number of skipped tests polluting PHPUnit's output.
#4
@
5 years ago
Ah yes, the ms-files tests needs to remain separate because the constants in ms_upload_constants() are set based on the value of the ms_files_rewriting option, which is itself set in the @group ms-files tests. Removing ms-files from the excluded groups causes many failures.
#5
@
5 years ago
The ajax group exclusion hasn't been needed since [41293]. It was introduced in [924/tests] because of the reliance on DOING_AJAX which is no longer the case.
#6
@
5 years ago
Ah yes, the ms-files tests needs to remain separate because the constants in ms_upload_constants() are set based on the value of the ms_files_rewriting option, which is itself set in the @group ms-files tests. Removing ms-files from the excluded groups causes many failures.
Just a heads-up: you can declare multiple testsuite entries in <testsuites>. If the ms-files group gets set as a separate testsuite, it will probably not need a separate run and prevent the errors you are seeing. At least worth giving it a try. I remember fixing a similar situation not too long ago this way.
Removing the exclusion for
ms-filesfrom the single site config makes sense.Via [30286]:
I think this remains a reason to continue excluding
ms-filesin the multisite test config.