Грамотный PHP для тестирования примеров в README

Я хотел бы включить примеры из моего README.md в мой комплект тестов. Поэтому я могу быть уверен, что все примеры все еще работают, и мне не нужно снова писать те же примеры, что и в тестовых случаях PHPUnit.

Кто-нибудь уже написал поддержку этого?

1 ответ

Я придумал грязный хак. Я получаю все примеры кода из README с регулярным выражением и оцениваю их в тестовом примере.

/**
 * @dataProvider parseReadme
 */
public function testReadme($example)
{
    $code = str_replace('HTMLBuilder', '\Comsolit\HTMLBuilder\HTMLBuilder', $example);
    eval($code);
}
public function parseReadme()
{
    $readme = file_get_contents(__DIR__ . '/../README.md');
    $matches = [];
    preg_match_all('/(?:```PHP([^`]*)```)/ism', $readme, $matches);
    return array_map(
        function($x) {return [$x];},
        $matches[1]
    );
}

(от: comsolit / html-builder)

Другие вопросы по тегам