我正在尝试使用php7。我安装了https://github.com/rlerdorf/php7dev并通过phpstorm连接。 我正在尝试使用这样的新功能:
<?php
namespace Kata;
class StringCalculatorTest extends \PHPUnit_Framework_TestCase
{
public function testAddEmptyString()
{
$calc = new StringCalculator();
$this->assertSame(0, $calc->add(''));
}
}
然后我尝试像这样测试:
<?php
$calc = new Kata\StringCalculator();
var_dump($calc->add(''));
我用phpunit启动,不幸的是我有
PHP Parse错误:语法错误,意外':',期待';'或'{'
可能我没有正确安装php7但是当我的php -v
时它似乎没问题PHP 7.0.0-dev(cli)(建于2015年5月25日16:34:33)(DEBUG)版权所有 (c)1997-2015 PHP Group Zend Engine v3.0.0-dev,版权所有(c) 1998-2015 Zend Technologies Zend Technologies的Zend OPcache v7.0.6-dev,Copyright(c)1999-2015,
更新
问题不在安装/配置php7(我想),因为当我从cli运行它时,这样:
int(0)
输出{{1}}并且没有错误。
所以问题可能在于phpunit吗?
答案 0 :(得分:0)
从错误中可以明显看出,执行您的代码有问题。
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{'
由于您的PHP 7安装正确,因此您的问题很可能来自PHPUnit。如果PHPUnit无法理解您的代码,它将在PHP 7代码的第一部分失败,在您的情况下,该代码使用return type declaration 在这一行
public function add(string $parameters): int {
,当您尝试断言时,它将在您的phpunit测试中触发。如果您对自己的主张发表评论,该错误应会消失。
我建议验证您使用的PHPUnit版本,您应该使用版本5或更高版本。 (对于php 7.0最好为6) 有关PHPunit版本的更多详细信息,请检出this link。