Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
 Phpunit_IT技术博客_编程技术问答 - 「Fatal编程技术网」

每次测试前需要使用PHPUnit&;清除多个数据库;数据库单元

我正在为我们的系统编写测试,该系统跨多个数据库进行连接。我选择将MySQL用于我的测试数据库,即test_database1和test_database2,我通过将生产模式转储到相应的表中来创建它们。注意,此时我不需要任何数据,只需要模式 在运行测试之前,清除这些数据库的最佳方法是什么?我有两个要求: 有一些外键约束阻止我仅仅能够截断,所以我需要“手动”清除每个表 我需要清除两个数据库 我研究了以下方面: class PHPUnit_Extensions_Database_Operation_T

如何确定PHPUnit测试是否正在运行?

我目前有一个问题,我必须在遗留代码中解决,以使我们与PHP扩展的交互正常工作() 因此,在使用应用程序运行正常的生产代码时,我不希望执行此代码。因此,我需要在常规PHP代码中检查正在执行的代码是否作为测试的一部分执行 关于如何确定这一点,有什么建议吗?我考虑了一个与测试文件本身相关的定义变量(我们不向客户提供测试),但是我们的开发人员需要扩展才能正常工作,而CI服务器需要运行测试 建议在PHPUnit.xml文件中使用全局集吗?其他想法?在PHPUnitbootstrap.php文件中定义一个常

PHPUnit在使用覆盖率执行时未运行所有测试

我有一个测试套件,它有大约50个测试,每个测试都是测试通过promises实现的异步网络调用。当我运行PHPUnit时,它执行所有测试,并且每次都通过 但是当我使用覆盖率时,所有测试都不运行,第一个测试部分运行,脚本退出,没有生成覆盖率。有什么帮助吗 这是我的命令: phpunit --coverage-html ./coverage --debug --verbose tests/ 我的代码是这样的: class ClassToTest { function foo($callback)

Phpunit 基于无脂肪框架的单元测试

有没有一种方法可以使用PHPUnit,其中我有一个测试文件夹,里面有indexTest.php,可以测试index.php文件中的路由 《无脂肪指南》给出了模拟路由请求和帖子的代码片段。只有当我在测试文件中直接生成包含任何功能的路由时,我才能使这样的测试正常工作 我想要的是用令牌模拟一个路由,允许它从index.php中的一个路由运行,并通过控制器和测试应该通过运行路由设置的f3变量 <?php class indexTest extends \PHPUnit_Framework_Tes

在Windows中使用PEAR和不使用PEAR安装PHPUnit时出现问题

我曾尝试使用pear连接到pear.phpunit.de和其他三个类似的连接,但由于连接超时而无法连接,在更新pear中的连接后,没有任何进展 此外,我还尝试在没有PEAR的情况下安装PHPunit,方法是在PHPunit.php文件中更改@PHPBIN@并对其进行重命名,然后在DOS中无法将其作为可执行文件运行(chmod在DOS中不起作用,我是按照步骤编写的) 有没有其他简单的方法可以让PHPUnit在Wamp服务器下的Windows中工作。请回复,所有的事情马上就要发生了 pear con

phpunit似乎加载了不正确的include路径

我正试图用MAMP在我的OSX Lion上安装phpunit。我已经在/Applications/MAMP/bin/php/php5.4.4/lib/php安装了phpunit 在终端中运行phpunit时,出现以下错误: 警告:require_once(File/Iterator/Autoload.php):无法打开流:第45行的/usr/lib/php/pear/PHPUnit/Autoload.php中没有这样的文件或目录 致命错误:require_once():无法在第45行打开/usr

PHPUnit不';我不允许包含文件

每当我尝试包含文件时,PHPUnit都会给我一条错误消息。例如,下面的代码给出了错误: <?php include_once "PHPUnit/Autoload.php"; require_once "controller/ProductController.php"; class SecurityTests extends PHPUnit_Framework_TestCase { public function testSmth() { $this->a

PHPUnit:调用未定义的方法

我想运行简单的播放器插入测试 我的代码是这样的: class Player{ public $id; public $name; } class PlayerDAO{ //db stuff ..... privatefunction input($player){ $player->id = mysql_real_escape_string($player->id); $player->name = mysql_real

Phpunit 没有可用版本时如何使用pear安装库

这不是我第一次经历这样的事情。这一次是和PHPunit在一起 我想用pear安装这个库 pear config-set auto_discover 1 pear install pear.phpunit.de/PHPUnit 安装失败,原因是: No releases available for package "pear.phpunit.de/PHPUnit" 我能做什么 多谢各位 注: pear升级说我有最新版本 pear更新频道说我是最新的 注2:我在工作,所以需要一个代理人 注3:在

Phpunit 在Codeception中自动加载用于单元测试的Kohana项目

我对Kohana和Codeception世界非常陌生。我正在探索如何使用codeception在kohana中进行测试。 我能够进行验收测试。但是现在我想为我的演示应用程序创建一个单元测试,它只有注册和注册功能 我应该如何加载所需的文件或我将在单元测试中使用的应用程序实例 就像我需要检查控制器登录类是否存在一样。然后在该控制器中确定是否存在操作\登录方法 我已经阅读了Codeception文档,它说您需要在unit/_bootstrap.php文件中自动加载您的项目。 那么,我应该如何自动加载我

phpunit替换方法return

这是我的密码。如何修改函数的返回结果 class Replace { public function add($a){ // how can I replace $this->double($anyNum) return value return $a + $this->double($a); } public function double($a){ return $a + $a; } } class

PHPUnit+;无法导出的覆盖率与实际xml结果不匹配

sonarqube:5.1.2 声纳跑步者:2.2.1 php插件:2.6 PHPUnit 4.2.6 我们正在应用程序上运行phpunit,但我无法按预期在sonar上获得正确的覆盖率% 在我的phpunit.xml中,我们有一些过滤器,它们定义了我们只想涵盖的文件夹 <whitelist addUncoveredFilesFromWhitelist="false"> <directory>./site-library-php/src/main/

phpunit针对我的测试定制拆卸

我有一些特定于我的类测试的设置。因为它是特定于我的测试的,所以我将它添加到测试函数的顶部。清理将添加到测试函数的末尾。当测试失败且未执行清理时出现的问题。是否有PHPUnit方法指定特定于我的测试函数的自定义拆卸。我看了PHPUnit手册,其中指定了teardownAfterClass和tearDown,但这两种方法都不能解决我的问题。函数teardownAfterClass将在类结束时仅运行一次。函数teardown在每次测试后运行,但是如果我的特定测试函数没有执行,我不想进行任何清理 为我的

PHPUnit测试断言函数/var是公共私有的还是受保护的?

有没有一种方法可以断言一个方法或变量是公共私有的还是受phpunit保护的?phpunit不提供这些断言,而且您通常不使用单元测试来测试您的键入能力。他们应该验证代码是否在运行时工作。以下是更多无意义的单元测试: 断言类名为CorrectClassName 断言函数foo(){return 5;}返回5 断言函数注释不包含“winning”一词 现在,有时候你只是想做一些事情,即使它不被推荐或者没有什么价值。我知道我知道。:)将其添加到基本测试用例类: /** * Assert that

Phpunit 无法使用CodeCoverage和Composer重新声明类错误

当使用Composer的autoload.php作为引导文件时,PHPUnit Code_覆盖率出现错误。我创建了自己的boostrap.php文件,只需单独包含每个文件,一切正常。我是不是偶然发现了一个作曲家的错误,还是我在什么地方出错了 //编辑:我正在使用最新(迄今为止)的所有版本:PHPUnit 3.7.12,Code_Coverage 1.2.7,Composer b51a4a7 Fatal error: Cannot redeclare class C3\CDN\EdgeCast i

使用本地phpunit(如果已安装),否则返回到全局

我在全球范围内通过composer安装了PHPUnit版本5.3.2,在我的项目中本地安装了版本5.7.19。我只需键入PHPUnit即可运行全局PHPUnit,键入vendor/bin/PHPUnit即可运行本地PHPUnit 是否有办法将PHPUnit配置为默认情况下运行本地安装(如果存在),或者返回到全局安装,这样我就不必每次都使用vendor/bin/PHPUnit 到目前为止,我提出的唯一解决方案是在项目目录中创建bash脚本phpunit: #!/bin/bash vendor/bi

PHPUnit中的覆盖率PHPT测试

运行简单的PHPT测试 --FILE-- <?php var_dump(1); ?> --EXPECT-- int(1) --文件-- --期待-- int(1) 通过带有phpdbg的PHPUnit命令。但我有错误 TypeError:PHPUnit\Runner\PhptTestCase::cleanupForCoverage()的返回值必须是数组类型,在/home/anastasia/foundation packages/visualxmleditor/trunk/v

Phpunit CruiseControl/phpUnderControl工件问题

我已经设置了Git和CruiseControl,并且刚刚完成phpUnderControl的工作(这本身就是一场噩梦,因为它缺少包和各种各样的东西) 所以我有所有的插件,比如phpunit和phpdocumentor 当我在我的项目上运行“ant”时,它构建得很好(只是检查一下我的build.xml是否良好) 从PHPUnderControl运行构建时,它将挂起图形生成 [cc]Sep-08 01:10:22 ecutePublisher- executing command: /root/ph

Phpunit 持续集成,使用Propel ORM将实际测试数据输入数据库的最佳实践

我使用Propel ORM复制一个表模式,以便进行持续集成,但Propel只为我提供了一个完全充实的模式,它没有为我提供测试数据(或基本的必要数据) 如何从带有版本控制的propel gen(propel ORM生态系统)的实时/测试数据库中获取数据?他们说,任何东西都不存在“最佳实践”——这是一种主观的做法,人们应该满足于几种形式的“良好实践”中的一种。我认为下面的内容符合这个标签的要求,而且最终对我来说效果很好。我已经使用PHPUnit大约一年了,也许六个月都是从头开始的 下面是我在PHPU

Phpunit 持续集成,使用Propel ORM将实际测试数据输入数据库的最佳实践

我使用Propel ORM复制一个表模式,以便进行持续集成,但Propel只为我提供了一个完全充实的模式,它没有为我提供测试数据(或基本的必要数据) 如何从带有版本控制的propel gen(propel ORM生态系统)的实时/测试数据库中获取数据?他们说,任何东西都不存在“最佳实践”——这是一种主观的做法,人们应该满足于几种形式的“良好实践”中的一种。我认为下面的内容符合这个标签的要求,而且最终对我来说效果很好。我已经使用PHPUnit大约一年了,也许六个月都是从头开始的 下面是我在PHPU

Laravel 5:PHPUnit和无代码覆盖驱动程序可用

我想使用PHPUnit创建代码覆盖率报告。我在网上尝试了很多安装程序。但一切似乎都没有结果 我使用最新版本的Laravel5(>5.2)和phpunitv。5.0.10. 此外,我在运行PHP7的MacOSX10.9.5上使用MAMP 当我运行集成在我的Laravel发行版中的PHPUnit时,我收到以下错误 $ vendor/bin/phpunit -v PHPUnit 5.0.10 by Sebastian Bergmann and contributors. Runtime:

PHPUnit覆盖测试elseif错误

好的,我正在看一段代码,我正在做一个phpunit覆盖率测试。在上述测试中,我只得到两行不正常工作的代码: private function getEarliestDateOrNull($snapshotDate = null, $preexistingEpisodeDate = null) { $date = null; if ($snapshotDate instanceof DateTime && $preexistingEpisodeDate insta

laravel phpunit(带例外处理)

我正在使用Laravel5.5和Vue.js编写一个web应用程序。PHPUnit版本是6.3.1 当用户使用表单请求注册时,我正在测试验证错误 路线: // web.php Route::post('/register', 'Auth\RegisterController@store')->name('register.store'); 这是我的及格考试: /** @test */ function validation_fails_if_username_is_missing() {

Phpunit BrowserKit组件不可用

我尝试启动功能测试时出错。 “BrowserKit组件不可用。” 正如你所看到的,我的单元测试还可以。 但不是我的函数,当我检查composer.json时,我可以看到它 "require-dev": { "symfony/browser-kit": "4.2.*", "symfony/css-selector": "4.2.*", "symfony/debug-pack": "*", "symfony/phpunit-bridge": "4.2.*",

带有PHPUnit断言的Behat测试

我在symfony4.3中有一个项目,它使用phpunitbridge5.0,我想在功能测试(behat)中使用断言函数。在较旧的项目中,我使用了PHPUnit包,并要求在behat上下文类中包含以下函数: require_once __DIR__.'/../../vendor/phpunit/phpunit/src/Framework/Assert/Functions.php'; 但PHPUnit Bridge有这样一个类: require_once __DIR__.'/../../bin/

smarty phpunit空获取

我需要帮助 我正在使用Smarty和PHPUnit,我遇到了麻烦 例如: 在一些检查中,我多次调用fetch函数,我只收到正确的第一个调用,其他的只返回空。为什么 我在这里以一些代码为例: /** * @dataProvider provider_test */ public function test_field($field) { // with this I instance smarty $front =

Phpunit 解释PHP单元输出

我的PHP单元在控制台上输出这个。63/129(48%)的确切含义是什么?它是否运行所有测试 PHPUnit 3.7.22 by Sebastian Bergmann. Configuration read from phpunit.xml ............................................................... 63 / 129 ( 48%) ..............................................

Phpunit 模仿一个狂饮的HTTP响应

我该如何恰当地模仿狂饮的反应呢。在测试我正在编写的解析器时,测试html包含在文件中。在PHPUnit测试中,我正在执行文件读取内容,并将结果传递给我的方法。有时HTML会链接到一个单独的文件。我可以这样嘲笑这种反应: public function testAlgo() { $mock = new MockAdapter(function() { $mockhtml = file_get_contents($this->dir . '/HTML/authorshi

phpunit断言包含两种可能性

如何让PHPUnit断言长字符串包含两个可能选项之一?任何一个结果都应该断言为true。像这样的 $multi_kilobyte_string = "lorem ipsum..."; $option1 = "dolor"; $option2 = "amet"; $this->assertContains([$option1, $option2], $multi_kilobyte_string); 这个问题的解决方案很简单,但没有很好的文档记录: public function testC

如何为laravel项目设置phpUnit别名?

我使用composer安装了phpunit来进行项目 composer require --dev phpunit/phpunit ^7 它安装正确。但是如何设置要使用的别名呢 ~$ phpunit 运行所有测试。 我发现~$vendor/bin/phpunit有效。在Ubuntu 18.04中,在何处以及如何设置别名 您提到的别名是供全局使用的,供应商文件夹中的phpunit仅用于该项目 全局安装PHPunit 如果要在任何地方使用$PHPunit,请全局安装PHPunit 您提到的别名是

PHPUnit v.4+;模拟静态方法

我用一种方法学习以下课程: class A { public function my( $myParam ) { \modelClass::truncateTable('table_name'); return $myParam * 4; } } 是否可以模拟静态方法“truncatable”?我想确保它在“我的”方法中被调用过一次。PHPUnit版本4.5,因此“staticExpects

Phpunit Symfony单元测试安全性(ACL-注释)

我想检查一个具有访问控制的方法,例如,只授予一个特定角色的方法。因此,我知道Symfony有两种方式: @方法(SensioFrameworkExtraBundle)或 调用授权检查器在我的方法中解释它 当涉及到单元测试时(对于我的案例phpspec,但我认为phpunit行为在该案例中几乎是相同的),我想测试只有匿名用户才能调用方法。用数字2,很好用。这里是我的设置: 注册HandlerSpec: class RegistrationHandlerSpec extends ObjectBeha

如何在我的测试类中获取phpunit CLI选项

在我的测试类中,是否有一种方法可以检查特定选项是否传递给phpunit CLI,尤其是选项--debug 原因是,无论是否启用调试模式,都可以创建symfony内核 public function setUp() { self::bootKernel(["debug" => true|false]); } 我通过使用$\u服务器['argv'] 我在symfony代码库KernelTestCase::getPhpUnitCliConfigArgument /** * Finds

PHPUnit 5.1.3:assertEquals()不工作。错误:未执行任何测试

我需要比较phpunit中的两个数组。我正在使用AsserQuals(),但输出显示未执行任何测试!我在下面提到了我的数组和代码: $expected_arr = array('success' => 1); $result_array =(output of print_r($result_array)) Array ( [success] => 1 ) $this->assertEquals($arr_data,$expected_arr); 我的PHPUnit版

Phpunit 使用XPath获取第N个元素-当元素[N]失败时

已经有一些关于XPath中第n个元素的讨论: 我正在使用Selenium和PHPUnit进行功能测试。我的问题是,在具有大表单的页面上,第n个选择器不起作用。我有80个输入字段(使用Selenium的getXpathCount('//input')调用来获得确切的数字),我想遍历这80个字段并键入一些文本。 我已经尝试但不起作用的内容(N是索引变量): 以及上面所有的混合物。它通常触发一个异常,表示:在N=2处找不到元素。我尝试了几种用于浏览器的XPath工具,所以像Chrome中的XPa

PHPUnit是';t安装正确

我试图通过EclipseHelios使用PHPUnit,但每次它都说“无法打开输入文件:。\pear\PHPUnit2\TextUI\TestRunner.php” 我确实卸载并安装了PHPUnit,但它也不起作用。PHPUnit2是一个不再使用的古老版本。当前的PHPUnit主版本是3,文件路径中不再有“2” 将Eclipse设置为使用PHPUnit3,而不是PHPUnit2

Phpunit 3.6未找到单元测试

我无法打开文件“FooTest.php” 我在Windows上使用PHP5.4.0和PHPUnit3.6 我将问题追溯到PHPUnit\Util\Filesystem.php,它调用get\u include\u path,其中包含“.”和pear的位置 由于某种原因,它无法解决。当它将其本地解析到PHPUnit位置时,返回测试所在的位置 如何让phpunit识别测试的位置。首先还要确保您的phpunit安装和所有依赖项都是最新的: pear upgrade phpunit/PHPUnit --

在Windows中从CMD运行PHPUnit

我已经安装了PHPUnit,当我从根php目录C:\wamp\bin\php\php5.4.16运行它时,一切似乎都正常运行 但是,我遇到的问题是从命令行中的其他地方运行PHPUnit,因此我无法运行任何测试。我得到了错误 phpunit' is not recognized as an internal or external command, operable program or batch file. 我的路径设置正确C:\wamp\bin\php\php5.4.16,安装php.e

使用Arcanist(Phabricator)自动运行PHPUnit测试

一个“简单”的问题:如何使用Arcanist自动运行PHPunit测试 根据,我应该首先加载一个自定义库。如上所述,我应该创建一个.arcconfig文件并加载相应的库 因此:我在我的项目中创建了一个dir“arc_libs”,在dir“src”中,我使用arc-release生成所需的文件。我的配置现在是: { "project.name" : "arc_libs", "phabricator.uri" : "https://phabricator.xxx.xxx.net/", "

PHPUnit can';t在模拟后实例化真实类

在一个单元测试中模拟了一个类之后,我就不能再在另一个单元测试中使用真正的类了 这与这里的问题相同,但答案并不相关 我有两个单元测试: class BarServiceTest { function setUp() { $this->fooService = $this->getMock('Application\Service\FooService', ['fooMethod'], [],'MockFooService', false, false, false);

Phpunit 这是非常奇怪的结果

assertEquals()在将'0'与false进行比较时失败,但在将'1'与true进行比较时通过 $this->assertEquals( '0', false ); // fails $this->assertEquals( '1', true ); // passes 有人能解释一下吗?字符串既不是假的,也不是真的。PHPUnit做完全相等,所以即使是1也不等于true PHPUnit在比较时使用==(三重等于)运算符,因此,只有TRUE===TRUE,而不是1。PHP

让PHPUnit与PhpStorm和Homestead一起正常工作

我想让我的项目进行单元测试。我有一个基本的L5项目和一些单元测试。我试着让它像这里提到的那样工作:而且 但我遇到了这个错误: 编辑 这是我的配置: 部署: 在最后一个路径参数中使用“\”或“/”而不是“\” 顺便问一下,你的操作系统是什么?我遇到了同样的错误 问题在于解释器路径映射的配置。它正在使用Vagrantfile中的路径映射。已列出Vagrant文件的路径映射: /C/xampp/htdocs/example->/home/vagrant/code 解决方案是为解释器添

Phpunit Cake3:控制器测试用例是黑色的

当我在Cake3中使用安全组件时,我总是在控制器测试中收到错误消息:“请求已被黑洞”。它可以像预期的那样工作,因为在这种情况下,请求实际上是一个黑洞,但我需要一种可能性来测试我的代码 我发现了以下关于同一问题的内容,但都是Cake2。不幸的是,我无法将其转移到Cake3,并且可能无法在这里使用相同的方法 以下是我的测试用例的外观: $data = [ 'first_name' => 'Test First Name', 'last_name'

Laravel 5.1-phpunit-ErrorException:未定义的属性:ExampleTest::$baseUrl

我有默认设置。My composer.json具有以下特性: "require-dev": { "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1" }, 当我运行phpunit时,我得到以下错误:我不知道为什么 PHPUnit 4.8.6由塞巴斯蒂安·伯格曼和贡献者撰写 E Time: 272 ms, Memor

Phpunit 无编写器的phalcon单元测试

如果你在谷歌上寻找phalcon phpunits,你会发现phalcon的官方文章《如何让它工作》。本文中是一个示例TestHelper。示例很好,但需要详细描述 首先,使用FactoryDefaults创建一个DI。我不使用FactoryDefault。第二个是创建的路径常量——为什么以及我需要什么(我甚至没有找到项目树) 我想下一个会抛出一个错误: 包括目录。“/../vendor/autoload.php” 我不想使用composer、npm、grunt、gem或任何其他打包助手,因为我

将数据提供程序传递到PHPUnit中的setUp()

我当前正在尝试将数据从数据提供程序传递到PHPUnit中的setUp()-方法 背景:我使用PHPUnit在不同的浏览器中运行前端测试。浏览器应该在数据提供程序内部定义,并且需要通过setUp()-方法知道 我知道,数据提供程序最初是在调用setUp()-方法(如setUpBeforeClass())之前执行的。因此,setUp()-无法将数据传递给数据提供程序。但它应该反过来工作,不是吗 PHPUnit是否使用数据提供者“集成”的数据生成自己的临时测试类 当然:一种解决方法是,再次读取setU

Phabricator phpunit配置-覆盖率

我正在尝试在phabricator的DIFF view中设置一个覆盖率报告。我有以下配置: .arcconfig tests/phpunit.xml 似乎arcanist没有收集报道信息。我甚至试过浏览phabricator的源代码,但找不到关于如何启用它的线索 欢迎提出任何建议 将白名单添加到测试/phpunit.xml。检查这是一条边界线。你应该扩展你的答案,在这里包含尽可能多的信息,并且使用链接仅供参考。这不是完整的配置,我们有一个白名单。HTML覆盖正常工作。 { "project_

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 16 页