草庐IT

PHPUnit_Extensions_Database_TestC

全部标签

PHPUNIT xdebug codecoverage 在控制台 (mac) MAMP 1.9 PRO 中不起作用

您好,我的xdebug连接到PHPUnit有问题。运行时:phpunit--coverage-html./reportunit我得到:PHPUnit3.4.15bySebastianBergmann.TheXdebugextensionisnotloaded.当我运行php-v时PHP5.2.13(cli)(built:Mar5201016:23:44)Copyright(c)1997-2010ThePHPGroupZendEnginev2.2.0,Copyright(c)1998-2010ZendTechnologieswitheAcceleratorv0.9.6,Copyright

phpunit - 返回两个对象到下一个测试用例

在某些地方,我的phpunit方法依赖于两个类,因此我决定编写一个专用方法来创建这两个类(彼此相关)的实例,并将它们传递给所有phpunit方法。我想做类似下面的事情。publicfunctiontestGetInstance(){$obj1=newClass1();$obj2=newClass2();return$obj1,$obj2;//caniuselist?}/***@dependstestGetInstance()*/publicfunctiontestBothFeatures(Class1$obj1,Class2$obj2)//howtopass2instances?{//

php - 在 TestSuite 期间停止 Phpunit 执行

我使用一个类来执行带有PhpUnit的测试套件,例如:$suite=newPHPUnit_Framework_TestSuite('PHPUnitFramework');$suite->addTestSuite('ClassOne');$suite->addTestSuite('ClassTwo');return$suite;开始单元测试:#phpunit--stop-on-failureTestSuite.php如果“ClassOne”出现错误或异常,则测试继续“ClassTwo”。如果第一个测试失败,我如何停止所有测试套件? 最佳答案

php - 如何在 phpunit setUpBeforeClass 方法中创建模拟对象?

我想在我的所有测试中都有一个模拟对象,所以我尝试在setUpBeforeClass()方法中创建它,但是这个方法是静态的,所以必须像这样静态调用getMockBuilder:publicstaticfunctionsetUpBeforeClass(){self::mocked_object=self::getMockBuilder('MockedClass')->disableOriginalConstructor()->getMock();}问题是getMockBuilder不能被静态调用:Argument1passedtoPHPUnit_Framework_MockObject_M

php - 在 PHPUnit (CIUnit) 中使用 YAML 文件作为数据提供者

我正在使用PHPCodeIgniterFramework编写应用程序。我正在尝试使用CI_Unit扩展PHPUnit来测试应用程序。为了测试模型,我尝试加载PHPUnit文档中定义的YAML数据提供程序,我收到错误。如果我捏造数据提供者对象,我会得到另一个错误。如果我为它提供一个普通的PHP数组,它会按预期运行。我做错了什么?这样做的正确方法是什么?以下是我的结果:如果我返回下面Yaml文件的对象PHPUnit_Extensions_Database_DataSet_YamlDataSet,我得到:Dataset"Clients"isinvalid.如果我围绕PHPUnit_Exten

php - Symfony 2.6 覆盖 PHPUnit_Framework_Error

我有一个经过单元测试的应用程序,我们已将其从symfony2.3更新到2.6。我们遵循了所有升级文档,只需要更改一些小的东西。除了PHPUnit测试外,一切都运行良好。我们有2个单独的运行,一个仅用于测试实体类,它在预提交Hook上触发。第二个运行完整套件,包括数据库设置和整个九码。自升级到2.6后,单元测试中抛出的PHPUnit_Framework_Error已被Symfony的Symfony\Component\Debug\Exception\ContextErrorException所取代,这会导致所有测试失败像这样:/***@dataProviderobjectTestData

php - SQLite3,SQLSTATE[HY000] : General error: 5 database is locked

我有这个小测试脚本:session_start();session_write_close();error_reporting(-1);register_shutdown_function(function(){//echo'shutdown';});$MAX=120;set_time_limit($MAX);echodate('Y-m-dH:i:s').'';$m=microtime(true);$file_db=newPDO('sqlite:'.dirname(__FILE__).'/test.sqlite3');$file_db->setAttribute(PDO::ATTR_E

php - 如何让 PHPUnit 忽略文件模式?

我正在为一个项目做代码覆盖率报告,并且在测试运行时包含或需要大量文件,实际上不需要测试或添加到覆盖率报告中(我正在使用ZendFramework2;配置+模块文件是这里的罪魁祸首)。有没有一种简单的方法可以简单地忽略文件模式modules/*/Module.php?这是我的黑名单:configvendormodule/*/config但是,添加module/*/Module.php对html代码覆盖率报告没有影响;添加它对包含Module.php没有任何影响覆盖率报告中的文件。ZendFramework在phpunit中启动bootstrap.php用通常的方式归档Applicatio

php - 如何在 PHPUnit 中使用数据提供程序测试异常?

PHPUnit有一个非常有用的特性@dataProvider,这允许测试一个方法的多个案例。它还有另一个很酷的注释--@expectedException以确保应用程序在定义的位置抛出正确的Exception。我目前正在针对多种边缘情况测试一种方法,并想像这样结合这两个功能(不是工作代码):classTestMyClass{/***@dataProviderprovideDataForFoo*/publicfunctiontestFoo($paramBar,$paramBuz,$expected){$myObject=newMyClass();$this->assertEquals($

php - Laravel 5 : How can I load database values into the config/services. php 文件?

我有一个正在开发的Multi-Tenancy应用程序,在添加socialite包时,我尝试从数据库加载特定网站的自定义facebookclient_id和client_secret。我不能真正使用env变量,因为每个站点都有自己的自定义facebook键。您似乎无法真正调用config/services.php文件中的模型方法,因为它可能尚未加载。我已尝试通过请求生命周期文档来解决此问题,但无济于事。我还尝试创建一个服务提供者以从我的业务模型的方法中获取值并将其设置为常量,但是当它在应用程序中可用时,config/services.php文件已经加载.这里是我希望数据库值可用的地方:c