2015-05-21 16 views
0

我想將我的README.md中的示例包含在我的測試套件中。所以我可以確定所有示例仍然有效,並且我不需要再像PHPUnit測試用例一樣編寫相同的示例。Literate PHP在README中測試示例

有沒有人已經爲此寫過支持?

回答

0

我想出了一個骯髒的黑客。我使用正則表達式從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