Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单元测试失败,手动测试通过_Php_Unit Testing_Phpunit - Fatal编程技术网

Php 单元测试失败,手动测试通过

Php 单元测试失败,手动测试通过,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,我的代码有点奇怪,所以我不得不问 我有一个测试的一部分: public function testGetAddresses() { //$this->markTestIncomplete('Not implemented yet'); $this->assertTrue($this->_prs->getAddresses() instanceof Crm_Collection); } 这个测试失败了 但当我这么做的时候: if ($entity->

我的代码有点奇怪,所以我不得不问

我有一个测试的一部分:

public function testGetAddresses()
{
    //$this->markTestIncomplete('Not implemented yet');
    $this->assertTrue($this->_prs->getAddresses() instanceof Crm_Collection);
}
这个测试失败了

但当我这么做的时候:

if ($entity->getAddresses() instanceof Crm_Collection) {
    echo "TRUE!";
} else {
    echo "FALSE!";
}
这是真的

有人知道发生了什么或者这可能是phpunit中的一个bug吗


谢谢

我怀疑这是PHPUnit的错误。 由于在两个不同的对象上调用了
getAddresses()
方法,我猜在失败的测试中,该方法确实返回了一些不是
Crm\u集合的内容


getAddresses()
方法是否有可能返回null或引发异常?

我怀疑这是PHPUnit的错误。 由于在两个不同的对象上调用了
getAddresses()
方法,我猜在失败的测试中,该方法确实返回了一些不是
Crm\u集合的内容


getAddresses()
方法是否有可能返回null或引发异常?

其他测试是否正常?您是否从浏览器运行测试

当您从命令行运行PHP代码时,我强烈建议您设置到PHP.ini的正确路径。否则,PHP将使用与当前PHP.ini不同的默认值

不确定这是否能解决你的问题,但很高兴知道。有一次我花了几个小时才发现这件事


php-c“c:/program files/apache software foundation/Apache2.2/”-f/path/to/your/script.php

其他测试是否正常?您是否从浏览器运行测试

当您从命令行运行PHP代码时,我强烈建议您设置到PHP.ini的正确路径。否则,PHP将使用与当前PHP.ini不同的默认值

不确定这是否能解决你的问题,但很高兴知道。有一次我花了几个小时才发现这件事

php-c“c:/program files/apache software foundation/Apache2.2/”-f/path/to/your/script.php
为什么瓦迪姆贝利亚耶夫说:

我不认为这是phpunit的问题,请仔细检查您的代码

此外,您还可以使用:

$this->assertType("Classname", $object)
所以如果失败,你会得到一个很好的错误。 (Phpunit将告诉您“预期的类,得到null”而不是“预期的true,得到false”,这在调试时有很大帮助:)

为什么vadimbelyaev说:

我不认为这是phpunit的问题,请仔细检查您的代码

此外,您还可以使用:

$this->assertType("Classname", $object)
所以如果失败,你会得到一个很好的错误。
(Phpunit会告诉您“expected class,Get null”而不是“expected true,Get false”,这在调试时会有很多帮助:)

导致问题的
$entity
$this->\u prs
之间是否有区别?很抱歉,我知道了,我对stackoverflow有点陌生。我今晚或星期一做。谢谢你的评论表明问题已经解决了,选择对你帮助最大的答案并接受它(也许还可以选择一些有用的东西来感谢别人)。它有助于其他人不要在已经解决的问题上“浪费”时间。造成问题的
$entity
$this->\u prs
之间是否有区别?很抱歉,我知道了,我对stackoverflow有点陌生。我今晚或星期一做。谢谢你的评论表明问题已经解决了,选择对你帮助最大的答案并接受它(也许还可以选择一些有用的东西来感谢别人)。它帮助其他人不要在已经解决的问题上“浪费”时间。它不能返回null,它只返回一个空集合。所有其他测试运行100%良好。从实体继承了两个类。顺便说一句,它是同一个类,手动测试只是一个手动设置变量。它不能返回null,它只返回一个空集合。所有其他测试运行100%良好。从实体继承了两个类。顺便说一句,这是同一个类,手动测试只是一个手动设置变量。我使用cruisecontrol和phpUnderControl组合运行测试,其他1000个测试运行良好。只是这两个给了我一个错误。即使在Netbeans中,当我在本地测试时,它也能工作。也许这和数据库有关。我会将本地数据库转储到CI服务器。奇怪。我用cruisecontrol和phpUnderControl运行我的测试,其他1000个测试运行良好。只是这两个给了我一个错误。即使在Netbeans中,当我在本地测试时,它也能工作。也许这和数据库有关。我会将本地数据库转储到CI服务器。奇怪。每个人都会时不时地遇到。很高兴我们能帮你解决这个问题:)每个人都会时不时地遇到。很高兴我们能帮助您解决这个问题:)