1.png (168.09 KB, 下載次數(shù): 195)
下載附件
2017-06-30 16:03 上傳
這是 https://github.com/overtrue/pinyin 首頁 README 中的持續(xù)集成狀態(tài)。 之前有朋友問我,這個 travis 狀態(tài)時 error 能用么?肯定是能用,我們來看下 travis 上什么地方錯誤了:
2.png (571.09 KB, 下載次數(shù): 194)
下載附件
2017-06-30 16:03 上傳
已經顯示出來了,其中單元測試失敗的是 php 5.5 和 php 5.6 我們隨便點擊一個進去看看
3.png (549.39 KB, 下載次數(shù): 215)
下載附件
2017-06-30 16:03 上傳
超過 10m 沒有收到輸出,所以 travis 認為構建是有問題的。其實吧~確實有問題,個人也苦惱了很久,沒有收到輸出的構建是 tests/GeneratorFileDictLoaderTest.php 這個測試類測試的是 Overtrue\Pinyin\GeneratorFileDictLoader 這個加載器。 解釋下這個加載器,因為拼音庫是基于詞庫的,而詞庫非常大,在很多場景下內存中是不允許載入這么多的數(shù)據(jù)的。所以這個加載器利用 php5.5+的 Generator (生成器)特性來生成數(shù)據(jù),而生成數(shù)據(jù)的代價就是需要大量的磁盤 IO 以及增加 >90% 的允許時間。(PHP 官方文檔中有說明)。 travis 認為構建失敗原因:這個問題本身可能存在于 PHP 5.5 & 5.6 的文件系統(tǒng)(看 PHP 改動日志是有改動的)造成了假死,再加上 travis 本身 IO 能力比較低。所以造成生成器同時打開多個文件流之后就假死了。 如何修復 額~我是來搞笑的。。。。并不知道如何解決構建失敗的問題,這個問題我曾經 fork 超哥的庫該代碼,也并沒有找到好的解決方法。 可能刪除這種「生成器」加載器會好吧 其實我特地發(fā)這篇文章,是想讓超哥看到,研究下怎么讓構建跑通 開源代碼倉庫 內測申請方式
|