Page MenuHomePhabricator

Quibble runs core:unit tests twice!
Open, Stalled, HighPublic

Description

During a full run of Quibble, I noticed PHPUnit alerts twice about the slow test Argon2PasswordTest:testPartialConfig. Turns out it run twice, once as part of the core:unit suite and another time as part of the default phpunit.php suite. The commands Quibble runs are:

core:unit
phpunit --colors=always --testsuite=core:unit,extensions:unit,skins:unit '--exclude-group' 'Broken,ParserFuzz,Stub'

The suite is defined as:

/phpunit.xml.dist
<phpunit>
    <testsuites>
        <testsuite name="core:unit">
            <directory>tests/phpunit/unit</directory>
        </testsuite>
</phpunit>

The second command is:

1
php tests/phpunit/phpunit.php --exclude-group Broken,ParserFuzz,Stub,Database,Standalone --log-junit /workspace/log/junit-dbless.xml

Which I guess crawls everything and thus also discover tests under tests/phpunit/unit. I guess we should exclude them?

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.
StatusSubtypeAssignedTask
StalledNone
OpenNone

Event Timeline

It is not the end of the world though core:unit takes just a few seconds to execute ;-]

Is this still a problem, or a problem worth doing something about?

Is this still a problem, or a problem worth doing something about?

This is still a problem. As for the second question: I don't think it's worth doing anything about this now, because PHPUnit 9 does not provide a CLI options to exclude a certain testsuite, and any other way we could come up with to exclude unit tests would be either a huge hack or a huge change to be implemented in all tests. OTOH, PHPUnit 10 does provide that option! It's --exclude-testsuite, see https://github.com/sebastianbergmann/phpunit/pull/4657. Once we upgrade, it should be really simple to add this option to the integration suite invocation. The only thing that makes this non-trivial is, I think, the fact that we'll probably have to write some BC logic so that the option is only passed if the repo uses PHPUnit >= 10.

BC logic

BC = beta cluster?

I beileve it's backwards-compatibility, in this context.

BC logic

BC = beta cluster?

I beileve it's backwards-compatibility, in this context.

Yes, sorry, it is backwards compatibility indeed.

Daimona changed the task status from Open to Stalled.Sep 7 2023, 4:48 PM