mirror of
https://github.com/nextcloud/server.git
synced 2026-03-29 05:43:57 -04:00
Merge pull request #55571 from nextcloud/backport/55358/stable32
[stable32] feat(test-case): allow to use PHPUnit Group attributes to mark tests requiring database
This commit is contained in:
commit
aa36f1c8f4
1 changed files with 13 additions and 1 deletions
|
|
@ -34,6 +34,7 @@ use OCP\Lock\ILockingProvider;
|
|||
use OCP\Lock\LockedException;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use OCP\Server;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
|
||||
if (version_compare(\PHPUnit\Runner\Version::id(), 10, '>=')) {
|
||||
trait OnNotSuccessfulTestTrait {
|
||||
|
|
@ -545,11 +546,22 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase {
|
|||
|
||||
$r = new \ReflectionClass($this);
|
||||
$doc = $r->getDocComment();
|
||||
|
||||
if (class_exists(Group::class)) {
|
||||
$attributes = array_map(function (\ReflectionAttribute $attribute) {
|
||||
/** @var Group $group */
|
||||
$group = $attribute->newInstance();
|
||||
return $group->name();
|
||||
}, $r->getAttributes(Group::class));
|
||||
if (count($attributes) > 0) {
|
||||
return $attributes;
|
||||
}
|
||||
}
|
||||
preg_match_all('#@group\s+(.*?)\n#s', $doc, $annotations);
|
||||
return $annotations[1] ?? [];
|
||||
}
|
||||
|
||||
protected function IsDatabaseAccessAllowed() {
|
||||
protected function IsDatabaseAccessAllowed(): bool {
|
||||
$annotations = $this->getGroupAnnotations();
|
||||
if (isset($annotations)) {
|
||||
if (in_array('DB', $annotations) || in_array('SLOWDB', $annotations)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue