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服务器。奇怪。每个人都会时不时地遇到。很高兴我们能帮你解决这个问题:)每个人都会时不时地遇到。很高兴我们能帮助您解决这个问题:)