Skip to content

Use dataprovider in tests for better UI and UX #1381

@JanMikes

Description

@JanMikes

Hey, comapre results of these screenshots:

Before:
Screenshot 2019-05-03 16 06 38

After:
Screenshot 2019-05-03 16 08 31

Quick prototype, code before:

    public function test(): void
    {
        $this->doTestFiles([
            __DIR__ . '/Fixture/class_to_new.php.inc',
            __DIR__ . '/Fixture/class_to_interface.php.inc',
            __DIR__ . '/Fixture/interface_to_class.php.inc',
            __DIR__ . '/Fixture/name_insensitive.php.inc',
            __DIR__ . '/Fixture/twig_case.php.inc',
            __DIR__ . '/Fixture/underscore_doc.php.inc',
            __DIR__ . '/Fixture/keep_return_tag.php.inc',
            __DIR__ . '/Fixture/rename_class.php.inc',
            __DIR__ . '/Fixture/rename_interface.php.inc',
        ]);
    }

Code after:

    /**
     * @dataProvider provideTestFiles
     */
    public function test(string $file): void
    {
        $this->doTestFiles([
            $file,
        ]);
    }

    public function provideTestFiles(): array
    {
        return [
            [__DIR__ . '/Fixture/class_to_new.php.inc'],
            [__DIR__ . '/Fixture/class_to_interface.php.inc'],
            [__DIR__ . '/Fixture/interface_to_class.php.inc'],
            [__DIR__ . '/Fixture/name_insensitive.php.inc'],
            [__DIR__ . '/Fixture/twig_case.php.inc'],
            [__DIR__ . '/Fixture/underscore_doc.php.inc'],
            [__DIR__ . '/Fixture/keep_return_tag.php.inc'],
            [__DIR__ . '/Fixture/rename_class.php.inc'],
            [__DIR__ . '/ Fixture/rename_interface.php.inc'],
        ];
    }

Right now, it stops executing next files as soon as first fails.

With this improvement, you can see all failed tests/files at once.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions