Manual talk:PHP unit testing/Writing unit tests
Set all the configuration settings the test depends on
editShouldn't the guide also tell to explicitly set all the configuration settings globals a test assumes, via setMWGlobals? Otherwise the test will test those globals, rather than whatever it's supposed to test: a nightmare for everyone running tests on a true development checkout (rather than vanilla core), or changing configuration defaults. Example: [1]. --Nemo 10:51, 5 December 2013 (UTC)
Data Provider naming
editI disagree with provideFoo
being a better name than fooProvider
. We are generally following the second on for Wikibase (and we actually have over twice as many data providers as core). Now that I noticed some people are using the former one because that is listed here, I will updated the Wikibase guidelines. I can only suggest the same is done here. See also: PHPUnit docs. --Jeroen De Dauw (talk) 08:45, 21 April 2014 (UTC)
404 error page for all urls of #Grouping_tests
editThat means for the 3 following URLS : https://phpunit.readthedocs.io/en/8.0/appendixes.configuration.html https://phpunit.readthedocs.io/en/8.0/textui.html and https://phpunit.readthedocs.io/en/8.0/appendixes.annotations.html#appendixes.annotations.group
+ same pb applies in #Coverage when accessing to https://phpunit.readthedocs.io/en/8.0/code-coverage-analysis.html
+ same in #Databases when accessing to https://doc.wikimedia.org/mediawiki-core/master/php/classMediaWikiTestCase.html#ac52071ce3aa849874d6531edccb7328a and to https://doc.wikimedia.org/mediawiki-core/master/php/classMediaWiki_1_1Tests_1_1Maintenance_1_1MaintenanceBaseTestCase.html
- Can someone correct please, Thanks.
Peeking at SQL tables during PHP tests
editDoes anyone know why MediaWikiIntegrationTestCase only creates unittest_ SQL tables for some of the tables in the database and not all of them? I'm trying to spy on tables using HeidiSQL while step debugging and I observed this. Important tables such as page and user do not have an equivalent unittest_page, unittest_user, etc. Maybe @Daimona Eaytoy knows? I'm using Docker + MariaDB. Thanks. –Novem Linguae (talk) 16:17, 13 January 2024 (UTC)
- I think MWIntegrationTestCase is supposed to clone all tables, cfr. ::setupDatabaseWithTestPrefix(). This seems to be the case in my local. Maybe you could try stepping through that method to see if there's anything wrong? Daimona Eaytoy (talk) 00:03, 14 January 2024 (UTC)
- Thanks. Did some step debugging, everything looked OK. Then I figured out that it is using TEMPORARY tables, which are not viewable in the table list. Setting the .env variable PHPUNIT_USE_NORMAL_TABLES=1 turns this off. Will use that from now on. Thanks for helping me talk this out. –Novem Linguae (talk) 11:54, 14 January 2024 (UTC)