2016-07-06 29 views
1

我們已將PHPUnit更新爲最新版本yersterday,並將所有調用從getMock()更名爲createMock()PHPUnit在HHVM中的測試中未定義getMock()

我們的單元測試都通過了與PHP 5.6和PHP 7.0,但失敗HHVM,我們得到以下錯誤:

Fatal error: Call to undefined method Gomoob\Pushwoosh\Client\CURLClientTest::createMock() in /home/travis/build/gomoob/php-pushwoosh/src/test/php/Gomoob/Pushwoosh/Client/CURLClientTest.php on line 33 

你可以看到Travis完整的構建。

這很奇怪,因爲這是一個簡單的call到在父類中聲明的受保護的方法(請參閱createMock()方法here)。

你有什麼想法,爲什麼這是失敗?它可能是HHVM中的一個錯誤嗎?

+0

我的測試類通常是'延伸\ PHPUnit_Framework_TestCase'可以讓你一試? – Matteo

+0

是的,沒有運氣與這個班同樣的問題。新的測試案例在這裏https://github.com/gomoob/php-pushwoosh/blob/develop/src/test/php/Gomoob/Pushwoosh/Client/CURLClientTest.php#L19和失敗的Travis作業https:// travis-ci.org/gomoob/php-pushwoosh/jobs/142799864 –

回答

1

createMock()方法是introduced in PHPUnit 5.4.0。你在Travis 5.1.3上使用舊版本。請參閱https://travis-ci.org/gomoob/php-pushwoosh/jobs/142799864#L910

您的內部版本爲其他PHP版本use PHPUnit 5.4.6

這可能是你應該向travis報告的東西。你的另一種選擇是通過作曲者安裝phpunit作爲開發依賴。

enter image description here

+1

嗨Jakub Zalas,這是解決方案,非常感謝您的幫助! https://travis-ci.org/gomoob/php-pushwoosh/builds/142956447 –