Page MenuHomePhabricator

Fix invalid `@covers` in PHPUnit test coverage report for Wikibase
Closed, ResolvedPublic

Description

We re-enabled the PHPUnit test coverage job for Wikibase in T288396.

When the jobs now run, there are 72 warnings due to invalid @covers annotations, which @hashar has pasted to P73497:

1There were 72 warnings:
2
31) Tests\Wikibase\DataModel\ReferenceSerializationRoundtripTest::testSnakSerializationRoundtrips with data set #0 (Wikibase\DataModel\Reference Object (...))
4"@covers Wikibase\DataModel\DeserializerFactory" is invalid
5
62) Tests\Wikibase\DataModel\ReferenceSerializationRoundtripTest::testSnakSerializationRoundtrips with data set #1 (Wikibase\DataModel\Reference Object (...))
7"@covers Wikibase\DataModel\DeserializerFactory" is invalid
8
93) Tests\Wikibase\DataModel\ReferenceSerializationRoundtripTest::testSnakSerializationRoundtrips with data set #2 (Wikibase\DataModel\Reference Object (...))
10"@covers Wikibase\DataModel\DeserializerFactory" is invalid
11
124) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewEntityDeserializer
13"@covers Wikibase\DataModel\DeserializerFactory" is invalid
14
155) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewItemDeserializer
16"@covers Wikibase\DataModel\DeserializerFactory" is invalid
17
186) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewPropertyDeserializer
19"@covers Wikibase\DataModel\DeserializerFactory" is invalid
20
217) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewSiteLinkDeserializer
22"@covers Wikibase\DataModel\DeserializerFactory" is invalid
23
248) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewStatementDeserializer
25"@covers Wikibase\DataModel\DeserializerFactory" is invalid
26
279) Tests\Wikibase\DataModel\DeserializerFactoryTest::testStatementListDeserializer
28"@covers Wikibase\DataModel\DeserializerFactory" is invalid
29
3010) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewReferencesDeserializer
31"@covers Wikibase\DataModel\DeserializerFactory" is invalid
32
3311) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewReferenceDeserializer
34"@covers Wikibase\DataModel\DeserializerFactory" is invalid
35
3612) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewSnakDeserializer
37"@covers Wikibase\DataModel\DeserializerFactory" is invalid
38
3913) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewEntityIdDeserializer
40"@covers Wikibase\DataModel\DeserializerFactory" is invalid
41
4214) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewTermDeserializer
43"@covers Wikibase\DataModel\DeserializerFactory" is invalid
44
4515) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewTermListDeserializer
46"@covers Wikibase\DataModel\DeserializerFactory" is invalid
47
4816) Tests\Wikibase\DataModel\DeserializerFactoryTest::testNewAliasGroupListDeserializer
49"@covers Wikibase\DataModel\DeserializerFactory" is invalid
50
5117) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewEntitySerializer
52"@covers Wikibase\DataModel\SerializerFactory" is invalid
53
5418) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewItemSerializer
55"@covers Wikibase\DataModel\SerializerFactory" is invalid
56
5719) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewPropertySerializer
58"@covers Wikibase\DataModel\SerializerFactory" is invalid
59
6020) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewSiteLinkSerializer
61"@covers Wikibase\DataModel\SerializerFactory" is invalid
62
6321) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewStatementSerializer
64"@covers Wikibase\DataModel\SerializerFactory" is invalid
65
6622) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewStatementListSerializer
67"@covers Wikibase\DataModel\SerializerFactory" is invalid
68
6923) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewReferencesSerializer
70"@covers Wikibase\DataModel\SerializerFactory" is invalid
71
7224) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewReferenceSerializer
73"@covers Wikibase\DataModel\SerializerFactory" is invalid
74
7525) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewSnakListSerializer
76"@covers Wikibase\DataModel\SerializerFactory" is invalid
77
7826) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewSnakSerializer
79"@covers Wikibase\DataModel\SerializerFactory" is invalid
80
8127) Tests\Wikibase\DataModel\SerializerFactoryTest::testFactoryCreateWithUnexpectedValue
82"@covers Wikibase\DataModel\SerializerFactory" is invalid
83
8428) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewTypedSnakSerializer
85"@covers Wikibase\DataModel\SerializerFactory" is invalid
86
8729) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewTermSerializer
88"@covers Wikibase\DataModel\SerializerFactory" is invalid
89
9030) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewTermListSerializer
91"@covers Wikibase\DataModel\SerializerFactory" is invalid
92
9331) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewAliasGroupSerializer
94"@covers Wikibase\DataModel\SerializerFactory" is invalid
95
9632) Tests\Wikibase\DataModel\SerializerFactoryTest::testNewAliasGroupListSerializer
97"@covers Wikibase\DataModel\SerializerFactory" is invalid
98
9933) Tests\Wikibase\DataModel\SerializerFactoryTest::testSerializeSnaksWithoutHashConstant
100"@covers Wikibase\DataModel\SerializerFactory" is invalid
101
10234) Wikibase\Lib\Tests\Formatters\DispatchingEntityIdHtmlLinkFormatterTest::testGivenFormatterMissing_UseDefaultFormatter
103"@covers \Wikibase\Lib\DispatchingEntityIdHtmlLinkFormatter" is invalid
104
10535) Wikibase\Lib\Tests\Formatters\DispatchingEntityIdHtmlLinkFormatterTest::testGivenFormatterExists_FormatterUsed
106"@covers \Wikibase\Lib\DispatchingEntityIdHtmlLinkFormatter" is invalid
107
10836) Wikibase\Lib\Tests\Formatters\DispatchingEntityIdHtmlLinkFormatterTest::testGivenInvalidFormatter
109"@covers \Wikibase\Lib\DispatchingEntityIdHtmlLinkFormatter" is invalid
110
11137) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::testGetDataTypeFactory with data set #0 (Wikibase\Lib\Modules\DataTypesModule Object (...), array('foo', Closure Object (...)))
112"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
113
11438) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::testGetDataTypeFactory with data set #1 (Wikibase\Lib\Modules\DataTypesModule Object (...), array('bar123', Wikibase\Lib\DataTypeFactory Object (...)))
115"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
116
11739) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::testGetConfigVarName with data set #0 (Wikibase\Lib\Modules\DataTypesModule Object (...), array('foo', Closure Object (...)))
118"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
119
12040) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::testGetConfigVarName with data set #1 (Wikibase\Lib\Modules\DataTypesModule Object (...), array('bar123', Wikibase\Lib\DataTypeFactory Object (...)))
121"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
122
12341) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::Instantiation raises exception in case missing "datatypefactory" field with data set #0 (array('foo'), 'missing "datatypefactory" field')
124"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
125
12642) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::Instantiation raises exception in case missing "datatypesconfigvarname" field with data set #1 (array(Wikibase\Lib\DataTypeFactory Object (...)), 'missing "datatypesconfigvarname" field')
127"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
128
12943) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::Instantiation raises exception in case all fields missing with data set #2 (array(), 'all fields missing')
130"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
131
13244) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::Instantiation raises exception in case "datatypefactory" field has value of wrong type with data set #3 (array('foo', 123), '"datatypefactory" field has v...g type')
133"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
134
13545) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::Instantiation raises exception in case "datatypefactory" callback does not return a DataTypeFactory instance with data set #4 (array('foo', Closure Object (...)), '"datatypefactory" callback do...stance')
136"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
137
13846) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::testGetDefinitionSummary
139"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
140
14147) Wikibase\Lib\Tests\Modules\DataTypesModuleTest::testGetDefinitionSummary_notEqualForDifferentDataTypes
142"@covers \WikibaseRepo\Modules\DataTypesModule" is invalid
143
14448) Wikibase\Lib\Tests\Rdbms\ClientDomainDbFactoryTest::testNewClientDb
145"@covers \Wikibase\Lib\Rdbms\DomainDbFactory" is invalid
146
14749) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityExistenceCheckerTest::testExists with data set "title is null" (true, false, false)
148"@covers \Wikibase\Lib\Store\TitleBasedEntityExistenceChecker" is invalid
149
15050) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityExistenceCheckerTest::testExists with data set "title is not null and is known" (false, true, true)
151"@covers \Wikibase\Lib\Store\TitleBasedEntityExistenceChecker" is invalid
152
15351) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityExistenceCheckerTest::testExists with data set "title is not null and not known" (false, false, false)
154"@covers \Wikibase\Lib\Store\TitleBasedEntityExistenceChecker" is invalid
155
15652) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityExistenceCheckerTest::testExistsBatch
157"@covers \Wikibase\Lib\Store\TitleBasedEntityExistenceChecker" is invalid
158
15953) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityRedirectCheckerTest::testIsRedirect with data set "title not found" (Closure Object (...), false)
160"@covers \Wikibase\Lib\Store\TitleBasedEntityRedirectChecker" is invalid
161
16254) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityRedirectCheckerTest::testIsRedirect with data set "title is not local" (Closure Object (...), false)
163"@covers \Wikibase\Lib\Store\TitleBasedEntityRedirectChecker" is invalid
164
16555) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityRedirectCheckerTest::testIsRedirect with data set "local title is not a redirect" (Closure Object (...), false)
166"@covers \Wikibase\Lib\Store\TitleBasedEntityRedirectChecker" is invalid
167
16856) Wikibase\Lib\Tests\Store\TitleLookupBasedEntityRedirectCheckerTest::testIsRedirect with data set "title is a redirect" (Closure Object (...), true)
169"@covers \Wikibase\Lib\Store\TitleBasedEntityRedirectChecker" is invalid
170
17157) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testConstructorErrorsForNoMiddlewares
172Trying to @cover interface "\Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\Middleware".
173
17458) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testRun
175Trying to @cover interface "\Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\Middleware".
176
17759) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testGetEntityIdsSuccess
178"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
179
18060) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testGetEntityIdNormalized
181"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
182
18361) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testGetEntityIdsNotFound
184"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
185
18662) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testGetEntityIdsNormalizationNotAllowed
187"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
188
18963) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testNormalizeTitle with data set #0 ('foo_bar', 123, 1)
190"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
191
19264) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testNormalizeTitle with data set #1 ('Bar', false, 0)
193"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
194
19565) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testNotEnoughInput with data set #0 (array(), array('barfoo'), false)
196"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
197
19866) Wikibase\Repo\Tests\Api\EntityByTitleHelperTest::testNotEnoughInput with data set #1 (array('enwiki'), array(), false)
199"@covers \Wikibase\Repo\Api\ItemByTitleHelper" is invalid
200
20167) Wikibase\Repo\Tests\ChangeOp\ChangeOpResultTraversalTest::testMakeRecursiveTraversable_returnsTraversableRecrusivelyTraversingTree with data set "root node is not ChangeOpsResult" (Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...), array(Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...)))
202"@covers \Wikibase\Repo\ChangeOp\ChangeOpResultsTraverser" is invalid
203
20468) Wikibase\Repo\Tests\ChangeOp\ChangeOpResultTraversalTest::testMakeRecursiveTraversable_returnsTraversableRecrusivelyTraversingTree with data set "root node is ChangeOpsResult - child is not ChangeOpsResult" (Wikibase\Repo\ChangeOp\ChangeOpsResult Object (...), array(Wikibase\Repo\ChangeOp\ChangeOpsResult Object (...), Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...)))
205"@covers \Wikibase\Repo\ChangeOp\ChangeOpResultsTraverser" is invalid
206
20769) Wikibase\Repo\Tests\ChangeOp\ChangeOpResultTraversalTest::testMakeRecursiveTraversable_returnsTraversableRecrusivelyTraversingTree with data set "the full tree" (Wikibase\Repo\ChangeOp\ChangeOpsResult Object (...), array(Wikibase\Repo\ChangeOp\ChangeOpsResult Object (...), Wikibase\Repo\ChangeOp\ChangeOpsResult Object (...), Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...), Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...), Wikibase\Repo\ChangeOp\ChangeOpsResult Object (...), Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...), Wikibase\Repo\Tests\ChangeOp\ChangeOpResultStub Object (...)))
208"@covers \Wikibase\Repo\ChangeOp\ChangeOpResultsTraverser" is invalid
209
21070) Wikibase\Repo\Tests\ParserOutput\EntityParserOutputDataUpdaterCollectionTest::testUpdateParserOutput
211Trying to @cover interface "\Wikibase\Repo\ParserOutput\EntityParserOutputUpdater".
212
21371) Wikibase\Repo\Tests\ParserOutput\EntityParserOutputDataUpdaterCollectionTest::testGivenInvalidDataUpdater_constructorThrowsException with data set #0 (array(null))
214Trying to @cover interface "\Wikibase\Repo\ParserOutput\EntityParserOutputUpdater".
215
21672) Wikibase\Repo\Tests\ParserOutput\EntityParserOutputDataUpdaterCollectionTest::testGivenInvalidDataUpdater_constructorThrowsException with data set #1 (array('notAnObject'))
217Trying to @cover interface "\Wikibase\Repo\ParserOutput\EntityParserOutputUpdater".

Fix the @covers annotations so that the warnings are resolved.

Acceptance Criteria

  • The PHPUnit test coverage job for Wikibase emits no coverage-related warnings.

Event Timeline

Change #1123477 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Wikibase@master] tests: Fix invalid covers class references

https://gerrit.wikimedia.org/r/1123477

Change #1123477 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] tests: Fix invalid covers class references

https://gerrit.wikimedia.org/r/1123477

I still see some errors in the job output:

13:07:43 There were 2 warnings:
13:07:43 
13:07:43 1) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testConstructorErrorsForNoMiddlewares
13:07:43 "@covers \Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\ResponseHeaderCountingTestMiddleware" is invalid
13:07:43 
13:07:43 2) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testRun
13:07:43 "@covers \Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\ResponseHeaderCountingTestMiddleware" is invalid
13:07:43 
13:07:43 --
13:07:43 
13:07:43 There was 1 failure:
13:07:43 
13:07:43 1) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testValidCovers
13:07:43 Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testConstructorErrorsForNoMiddlewares: "@covers \Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\ResponseHeaderCountingTestMiddleware" is invalid
13:07:43 
13:07:43 /workspace/src/tests/phpunit/MediaWikiCoversValidator.php:51

I still see some errors in the job output:

13:07:43 There were 2 warnings:
13:07:43 
13:07:43 1) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testConstructorErrorsForNoMiddlewares
13:07:43 "@covers \Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\ResponseHeaderCountingTestMiddleware" is invalid
13:07:43 
13:07:43 2) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testRun
13:07:43 "@covers \Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\ResponseHeaderCountingTestMiddleware" is invalid
13:07:43 
13:07:43 --
13:07:43 
13:07:43 There was 1 failure:
13:07:43 
13:07:43 1) Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testValidCovers
13:07:43 Wikibase\Repo\Tests\Domains\Crud\RouteHandlers\Middleware\MiddlewareHandlerTest::testConstructorErrorsForNoMiddlewares: "@covers \Wikibase\Repo\Domains\Crud\RouteHandlers\Middleware\ResponseHeaderCountingTestMiddleware" is invalid
13:07:43 
13:07:43 /workspace/src/tests/phpunit/MediaWikiCoversValidator.php:51

Maybe an autoload failure seen here, because CI validation passed.

covers annotation changed today with 5f35b89d0064078136ed82ebcc2735093a58b383 with reference to this task, should be fixed.

Ollie.Shotton_WMDE subscribed.

@covers annotations fixed - no more warnings - marking resolved