草庐IT

PHPUnit_Extensions_Database_TestC

全部标签

php - 使用 phpunit 创建模拟类?

有没有办法用phpunit创建模拟类,而不是模拟对象?我正在寻找一种方法来进行依赖注入(inject),而不必在构造函数(或任何地方)中显式传递类可能需要使用的每个对象。对于所有这些情况都会返回“true”的东西:publicfunctiontestAAAA(){$foo=$this->getMock('foo',array('bar'));var_dump(class_exists('foo',false));var_dump(method_exists('foo','bar'));var_dump(method_exists($foo,'bar'));}这打印:bool(true)

phpunit - @covers 标签不工作

也许我错过了一个细节,但我为单例_clone方法编写了一个小测试用例,但它没有像代码覆盖率报告中测试的那样显示出来。/***@coversErrorHandling::__clone*/publicfunctiontest__cloneNotCloneable(){$class=newReflectionClass('ErrorHandling');$method=$class->getMethod('__clone');self::assertTrue($method->isFinal(),'__clonemethodisnotfinal.');self::assertTrue($m

php - 在 PHPUnit 中重新运行上次失败的测试

您可以使用--stop-on-failure标志在其中一个测试失败时中断单元测试。有什么方法可以让PHPUnit重新运行这个失败的测试,而不是手动提供完整路径? 最佳答案 SincePHPUnit7.3,您可以缓存测试结果,然后按缺陷对测试进行排序。在phpunit.xml中,启用cacheResults:如果您不想编辑phpunit.xml,您也可以使用--cache-result标志运行测试。缓存结果时,PHPUnit会在运行测试后创建一个.phpunit.result.cache文件。确保将此文件添加到全局gitignore文

PHPUnit - 自动重试失败的测试 X 次?

我有一组复杂的PHPUnit测试,其中一些涉及连接到世界各地的服务器,无论出于何种原因,有时会超时。我不想让测试在服务器超时时失败,而是想在实际将其标记为失败之前简单地重试该测试一次或多次。现在,我明白这可能不是处理我手头情况的最佳方式。一个更好的解决方案是修复服务器。但是,这现在不在我的控制范围内。所以,我真正想要的是告诉PHPUnit重新测试每个失败的测试用例X次,并且只有在每次都失败时才将其标记为失败。有什么想法吗?编辑:你们中的许多人已经回复了有用的建议,我不会这样做。我明白了,谢谢。但是,具体来说,我想做的是创建一个测试套件来测试完整系统的操作,包括远程服务器。我理解测试我的

PHPUnit:强制显示断言值

当PHPUnit测试失败时,显示实际值和预期值。但是当测试通过后,这个信息就不会显示了。如何强制PHPUnit始终显示预期的和实际的断言结果? 最佳答案 运行phpunit--testdox将显示每个测试名称。因此,作为一种解决方法,您可以将预期和实际的断言结果合并到测试名称中……这仍然只是一种解决方法…… 关于PHPUnit:强制显示断言值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

php - 拉维尔 "undefined method Illuminate\Database\Query\Builder::attach()"

我试图在Laravel4的数据库播种期间关联相关模型。根据文档here,我可以这样做:$user->roles()->attach(1);所以,在我的数据库种子中,我正在运行:$package=Package::create(['name'=>$faker->word,'summary'=>$faker->sentence,'base_price'=>$faker->randomFloat(2,200,10000)]);//Attach1-5randomlyselecteditemstothispackageforeach(range(1,5)as$index){$randomItem

php - PHPUnit 命令行工具中的控制字符有什么问题?

当我从命令行运行phpunit时,控制字符被打印出来,而不是像控制字符一样工作。看看这个:PHPUnit3.6.5bySebastianBergmann.Configurationreadfromapp\phpunit.xml.dist...Time:1second,Memory:12.00Mb‹[30;42m‹[2KOK(3tests,3assertions)‹[0m‹[2K我假设像‹[30;42m这样的符号是某种控制字符,应该由控制台以不同的方式使用(定位光标、删除字符等)这里有什么问题吗? 最佳答案 发生这种情况是因为您已将p

php - __autoload 在使用 PHPUnit 进行测试时不受尊重

如何让PHPUnit遵守__autoload函数?例如我有这三个文件:加载器.phpfunction__autoload($name){echo"foo\n";require_once("$name.php");}测试.phprequire_once("loader.php");classFooTestextendsPHPUnit_Framework_TestCase{functiontestFoo(){newFoo();}}foo.phprequire_once("loader.php");newFoo();正如预期的那样phpfoo.php出错了,说文件“Foo.php”没有存在。

PHPUnit 找不到异常类

我在5.3中使用命名空间并尝试使用Symfony2框架测试PHPUnit中的预期异常。我希望在使用时抛出异常$this->setExpectedException('ImageResizerException');我收到以下错误:PHPUnit3.7.13bySebastianBergmann.Configurationreadfrom/var/www/branches/3.6.0/api/app/phpunit.xml.dist.E.................Time:1second,Memory:18.25MbTherewas1error:1)AssetManagerBund

android - 签名apk错误: proguard can't find referenced class android. arch.core.util.Function after com.firebaseui :firebase-ui-database update to 2. 3.0

更新后compile'com.firebaseui:firebase-ui-database:0.4.0'到compile'com.firebaseui:firebase-ui-database:2.3.0'我能够在我的测试设备上编译和运行我的应用程序,但是当我尝试生成签名的apk时,我在“messagesgradlebuild”中得到了这个。我希望这是一个proguard问题:Information:Gradletasks[:app:assembleRelease]Warning:android.arch.lifecycle.Transformations:can'tfindrefe