2016-07-06 44 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 –