我的主张是:
1). $rfid是一个5个字符长的字符串
2). 我得到了一个有效的结果集
多谢各位
请假设我有以下单元测试代码:
public function getAvailableVideosByRfid($rfid, $count=200) {
$query="SELECT id FROM sometable WHERE rfid='$rfid'";
$result = mysql_query($query);
$count2 = mysql_num_rows($result
我试图实现100%的代码覆盖率,但我无法确定如何覆盖下面的57行。这只是一个结尾。我在所有代码中都有这些行,以及像}else{这样的行,但它们没有被覆盖,也没有被标记为死代码
我如何编写一个测试来覆盖这些行
34 : public function addAction() {
35 :
我有一个抽象类,其中有一些常用的方法,我希望对其进行测试,所以我不必在扩展这个类的每个类中都测试它们
abstract class Class1 implements iClass1
{
const VALUE = 'A';
private $Return;
public function __construct($Field = NULL)
{
if( ! is_null($Field) )
$this->S
我有从PhpUnit运行的代码覆盖率,我可以在Git中生成一个diff文件,它将向我展示将要发布的内容
我如何将一个映射到另一个,这样我就可以说我们将要发布的代码包含在我们的测试中了
理想情况下,这可以作为Jenkins中的构建步骤自动运行。在通过Ant/maven构建运行phpunit测试之前,请运行phpscript。在这个php脚本中,将要发布的git文件中指定的每个文件以及匹配的单元测试复制到一个临时目录中。当然,这需要您使用。在临时目录上运行phpunit
-application
我今天一直在努力通过puppet安装phpunit,我最初使用的是pear,但根据phpunit网站的说法,这显然是错误的安装方式。我唯一能让它工作的方法就是通过一个执行官。我使用的是CENTOS 6、Vagrant、Virtualbox和puppet。这是我正在使用的命令,是否有更好的方法来执行这是我的问题
exec { 'install phpunit' :
command => '/usr/bin/wget -O /usr/local/bin/phpunit https://ph
我在班上的最顶端使用了它,并对其进行了测试:
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
require_once ExtensionManagementUtility::siteRelPath('my_ext') . 'Lib/ServiceLoader.php';
class Tx_MyOtherExt_Domain_Service_SearchService implements SingletonInterface
如果我有一个类Foo,我可以使用下面的语法更改bar的行为
class Foo {
public function method() {
}
public function bar() {
}
}
限制:名为“method”的方法上述示例仅起作用
当原始类未声明名为“method”的方法时。如果
原始类确实声明了一个名为“method”的方法
$stub->expects($this->any())->method('doSomething')->willReturn('f
我只是从使用的持续集成开始
我在回购协议的TLD中有此文件:
sudo: false
language: php
php:
- '7.1'
以下是Travis CI如何查看我的配置:
{
"os": "linux",
"php": "7.1",
"dist": "trusty",
"sudo": false,
"group": "stable",
"language": "php",
}
为什么生成时出现phpunit错误?可能是因为回购协议中的另一个.travi
我正在学习Zend Framework 2单元测试教程。在设置单元测试的过程中,他们在setUp方法中插入应用程序配置的硬编码路径:
namespace AlbumTest\Controller;
use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;
class AlbumControllerTest extends AbstractHttpControllerTestCase
{
public functi
我遇到了一个糟糕的情况,我想测试的一个类正在扩展另一个具有相当复杂的公共静态方法的类。如果父类没有扩展所需的其他类,那么这就不会是一个问题。具体来说,我需要继续扩展\illumb\Database\elount\Model。我对可能的重构束手无策,以使其更易于测试
在仍然允许模型类执行的情况下,是否有任何方法可以存根或更改相关类的父类?您应该使用模拟对象。
请参见此处:您应该使用模拟对象。
请参见此处:也许您可以创建一个扩展您正在测试的类的YourClassTestCase。然后,在YourCl
请问我的项目中的图标是什么?是来自代码嗅探器还是PHPUnit?
非常感谢
这是一个书签——你已经为一个文件而不仅仅是一行添加了书签
只需在“项目视图”面板中聚焦文件,然后再次按相同的快捷键(Windows上的F11)
或者直接进入收藏夹面板书签节点,或者直接通过Boormarks弹出窗口(Navigate | Bookmarks | Show Bookmarks--Shift+F11)将其删除
收藏夹|书签节点():
显示书签弹出窗口():
这是一个书签——你已经为一个文件而不仅仅
我曾经对Xdebug 2进行过以下配置:
xdebug.default\u enable=1
当没有调试客户端正在侦听时,Xdebug不会减慢执行速度,但当我需要调试某些东西时,我只需在PhpStorm中启用侦听并刷新页面。此操作不需要浏览器扩展。同样的方法也适用于调试CLI应用程序,只是起了作用
我尝试通过以下配置使用Xdebug 3实现同样的效果:
xdebug.mode=debug
xdebug.start_start_with_request=yes
其工作原理相同,但每次在PhpSt
当我从命令行在Netbeans IDE中运行一个示例测试时,例如:
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
protected function setUp()
{
$this->setBrowser('firefox');
$this->setBrowserUrl('http://www.example.com/');
}
public function testTitle()
{
我正在尝试运行一个测试,其中提交了一个空白表单,等待10秒以确保页面已重新加载,然后检查是否出现错误消息
我用的是硒,一开始就是硒
java -jar /usr/local/bin/selenium-server-standalone-2.25.0.jar
我有一些测试,以确保字段存在,例如
public function testEmailFieldIsPresentById()
{
$element = $this->byCssSelector('#email');
$this-&g
我正在尝试安装。我也在使用PhpStorm 5.0
我感觉它自身安装不正确,因为当我尝试运行骨架生成器时,它会给我一个错误提示:
'phpunit-skelgen.bat' not found at...
此外,pear似乎确实将其安装在我的pear文件夹下的SebastianBergmann\PHPUnit\SkeletonGenerator文件夹中,这似乎有些奇怪,因为我本应将其安装在主pear文件夹中
有什么想法吗?问题解决了
这是因为phpunit-skelgen.bat文件实际上安装
在具有Composer和PHPUnit的项目上使用PHPStorm(所有这些都已正常工作)如何在“供应商”中的Composer插件上运行PHPUnit测试(在本例中为mikey179/vfstream)
我的项目结构如下所示:
myscripts/
vendor/
- mikey179
- vfsStream
composer.json
我想运行PHPUnit来测试vfstream插件
我能够在自己的测试代码上运行测试(在供应商目录之外)
当我运行PHPUnit测试(顶部的绿色播放按钮)时
我想一天运行两次phpunit,当检测到错误时,向我发送日志电子邮件,我能找到的只是使用,但我找不到类似endAllTest,endTest和endTestSuite的事件将在每个套件或测试完成时运行,在所有测试完成后我需要做些什么,并且检测到错误,怎么做?听起来你想要一个测试跑步者。查看Travis CI.PHPUnit,如果从命令行运行,它也将返回错误级别,因此您可以使用批处理文件、powershell等。。。分支并发送电子邮件。
class Listener extends PHPUnit
我的目标是确保对象图具有预期的值和类型。我想确保每个值都是预期的类型
为此,assertEquals()不幸没有什么用处:
$this->assertEquals(
[ 'prop' => '0' ],
[ 'prop' => 0 ]
);
// -> no failures
在这种情况下,assertSame()可以很好地工作:
$this->assertSame(
[ 'prop' => '0' ],
[ 'prop' =
我执行此命令行以运行单元测试:
哈坦。hadrich@pc_Hatem_Hadrich:/projet/tools$php/scripts/phpunit CRM\u AllTests
当我从本地实例运行单元测试时,我遇到了这个错误,我找不到解决它的方法。任何人都可以帮助我修复这个错误
PHP Fatal error: Class 'CiviTestSuite' not found in /projet/../civicrm/tests/phpunit/CRM/AllTests.php on
我已经在全球安装了phpunit(v7.1.4)。我的项目使用phpunit^6,定义见composer.json
如果在项目目录中运行$phpunit--version,我会看到:
$ phpunit --version
PHPUnit 7.1.4 by Sebastian Bergmann and contributors.
但如果我运行测试,则会使用另一个版本:
$ phpunit
PHPUnit 6.5.7 by Sebastian Bergmann and contributors.
我想用这个测试类测试一个控制器
<?php
use SilverStripe\Dev\FunctionalTest;
class SitePageControllerTest extends FunctionalTest
{
protected static $fixture_file = 'site/tests/fixturesSitePage.yml';
public function testViewSitePage()
{
$obj =
[phpunit]测试运行:415,失败:13,错误:19,不完整:0,跳过:0,经过的时间:45.19617秒
我想了解有关失败和错误的详细信息,怎么办?您可以发布构建文件吗
在任何情况下,要使phpunit任务输出附加信息,请在任务调用中使用“普通”格式化程序:
<phpunit ...>
<formatter usefile="false" type="plain"/>
<batchtest>
...
</batch
检查PHPUnit中测试执行是否成功的最佳方法是什么?我试图为我的Selenium窗口截图,但只有当我的测试失败时。我曾尝试在onNotSuccessfulTest中拍摄屏幕截图,但如果我总是在tearDown()中关闭窗口(我应该这样做),则onNotSuccessfulTest函数中没有可拍摄屏幕截图的会话
我考虑的解决方案包括检查测试在拆卸过程中是否成功,确定是否拍摄屏幕截图
我使用的是PHPUnit 3.6和Facebook的PHPWebdriver,据我所知,我没有变量captureS
我正在编写单元测试来测试一个模型类。
首先,我有一个testAddStudent()测试用例,它向数据库添加了一些数据。
然后我有另一个测试用例来检索我刚才添加的记录。
我的代码如下所示:
class Model_STest extends PHPUnit_Framework_TestCase {
protected $_student;
public function setUp() {
error_log("Entered setup");
parent::setUp()
我使用phpunit进行TDD方法。目前,我已经编写的一些测试失败了,因为我正在等待其他人赶上我的测试。因此,我想为现在失败的每个断言打印一条失败的断言消息,例如
$this->assertTrue($now_its_false, '> my friend should fix method X to return Y');
这适用于标准断言,但我不知道在测试异常时如何打印这样的消息。例如,我测试了一个应该引发异常的方法,但它没有。我的代码如下所示:
public function
在我继承的Symfony2项目上运行一些功能测试时,我遇到了一个有趣且令人沮丧的问题。我正在通过Symfony向我的一个控制器方法发送POST请求。调试程序在测试文件本身的测试期间工作。我可以设置断点,运行测试,调试器将在该点停止所有处理,直到我逐步完成
问题是调试器在客户端请求访问的代码中不工作,可能是因为它是辅助请求/会话
有办法解决这个问题吗?我正在使用PhpStorm 7.1.3,如果有必要的话。在Symfony测试客户端的帮助下解决了这个问题,并为其提供了正确的URI
我有一个这样的文件夹结构
root_folder
folder1
_unittest
<other files>
folder2
_unittest
<other files>
root\u文件夹
折叠1
_单元测试
折叠2
_单元测试
现在我要做的是在所有名为_unittest的子文件夹中找到的文件上从根目录运行phpunit
有人能建议如何做到这一点吗(可能使用xml配置文件?)
谢谢,当设置xml配置时,PHPunit将只运
我使用PHPUnit生成代码覆盖率数据,使用HTML日志记录类型。有时,我会在整个代码库中生成一个完整的覆盖率日志,然后在PHPStorm中的较小代码库子集上重新运行测试
不幸的是,新生成的覆盖率报告将仅显示代码库较小子集的覆盖率,其余代码库显示为0%覆盖率。以前生成的覆盖率信息已丢失
有没有办法配置一些东西,以便在测试的一小部分上新生成的覆盖率日志将与旧的覆盖率日志相结合?不确定,高度怀疑。当您使用“随覆盖运行”从PhpStorm运行PHPUnit时,它会传递覆盖报告文件的自身路径,然后自动在
我试图测试在公共接口中是否调用了受保护的方法
<?php
abstract class SomeClassAbstract
{
abstract public foo();
public function doStuff()
{
$this->_protectedMethod();
}
protected function _protectedMethod();
{
// implemen
我正在玩beta版(WebIDE的PHP版本)及其与PHPUnit的集成。我知道如何设置配置文件来运行特定文件、目录或类中的测试。问题是,我想创建一些配置文件,运行按钮将在当前打开的文件中运行测试
知道有什么办法吗?或者它还没有在beta版中实现?通过Ctrl-Alt-F9打开上下文运行/调试菜单(这取决于您的操作系统,查看运行|调试…菜单项),然后查看标有2和3的行-它们对应于当前文件和测试。按number调用
您可以使用工具|录制宏录制宏,并通过设置|键映射|宏添加快捷方式。在尝试更改之前,
目前,我们在setUpBeforeClass中运行代码来设置数据库。但是,这会在测试每个测试类之前运行。是否可以在运行任何测试之前让代码运行一次,也可以在所有测试完成后运行一些代码?为什么要这样做?单元测试应该相互独立,因此在运行每个测试之前,所有前提条件也应该恢复到相同的状态
如果您觉得需要为整个套件运行一次的初始化方法,那么您的测试可能设置不正确。我同意Kris的意见,即您希望避免此类行为,但如果需要,也许您可以这样做:
class My_PHPUnit_Framework_TestCase
如何获取assertTrue方法?我的文件phpunit_test.php是
<?php
class phptest extends PHPUnit_Framework_TestCase
{
public function test_something()
{
$this->assertTrue{ 1 > 0 };
}
}
?>
应该是
$this->assertTrue( 1 > 0 );
应该是
$this->ass
当$content包含unicode字符时,以下断言无法正确断言该语句
$matcher = array('tag' => 'div', 'content' => $value);
$this->assertTag($matcher, $content);
目前,我正在使用assertRegExp绕过它
$this->assertRegExp('/<div>' . $value . '<\/div>/', $content);
但如果有人能对如
我使用phing来部署我的php代码,但是如果任何php单元测试用例失败或者代码覆盖率低于85%,我们需要添加一个条件来停止部署
我们能够通过在build.xml中添加以下代码来添加PHP单元测试用例条件
<phpunit haltonerror="true" haltonfailure="true" printsummary="true">
</phpunit>
现在我需要测试代码覆盖率百分比,请告诉我如何做?使用Phing自己的PHPunit任务,您可以使用C
有没有办法为1方法上的连续调用配置phpunit参数匹配器
e、 g.第一次调用时参数必须为“1”,第二次调用时参数必须为“2”。。我不想使用“$this->at(x)”,因为我的MockObject上有很多调用,我不想计算正确的顺序(每次我更改被调用方法的顺序时,我可能必须更改预期的顺序) 在phpunit4.1中:谢谢,我已经在使用这个:-)
在测试方法A中,方法B被多次调用。我想断言,这些调用中至少有一个使用了特定的参数,但我不在乎何时调用
我如何构造一个PHPUnit测试来断言这一点
我在谷歌和StackOverflow上搜索了这个解决方案,但运气不好,而且这些文档也没有多大帮助
我已尝试使用此帮助器函数:
protected function expectAtLeastOnce( $Mock, $method, $args = array() ) {
$ExpectantMock = $Mock->expects(
我们在版本6.3.1中使用SonarQube,并且对其功能非常满意
但是,我们希望将测试代码包括在分析中。更具体地说,包括它们用于分析,但排除它们用于重复和代码覆盖
我们当前的配置如下所示:
sonar.sources=src/src
sonar.tests=src/tests, src/jsTests
sonar.test.inclusions=src/jsTests/**, src/tests/**
据我们所见,声纳自动将我们的测试排除在分析之外:
10:20:37.223 INFO
标签: Phpunit
zend-framework3zend-test
当我尝试使用此命令运行失败的测试时:
/vendor/bin/phpunit
我得到这个致命错误:
PHPUnit 5.7.20 by Sebastian Bergmann and contributors.
PHP Fatal error: Class 'PHPUnit\Framework\ExpectationFailedException'
not found in /var/www/zend/vendor/zendframework/zend-
test/src/PHPUnit/C
我正在尝试用PHPUnit和Symfony 4测试我的RoomRepository。我使用composer安装了symfony/phpunit桥。我创建了一个名为Room的简单实体,其中包含一个id和name属性,以及一个repository方法,通过其id获取Room
公共功能获取(int$id):?房间
{
/**@var Room$Room*/
$room=$this->findOneBy(['id'=>$id]);
返回$room;
}
正如您所看到的,我的测试非常简单:
公共函数te
我正在尝试使用PHPUNit编写一些测试,但在尝试运行时,不知何故无法识别这些测试。\vendor\bin\PHPUNit。
这是我的测试类的一个例子
use\App\Controllers\city\u controller;
使用PHPUnit\Framework\TestCase;
class city\u controllerTest扩展了TestCase
{
/**
*@测试
*/
公共功能测试_AddCity(){
$this->assertTrue(true);
}
}在文档中,
有人知道Phpunit不合逻辑的文件排序的解决方法吗?我在一个子文件夹中有一些测试,它们的名字像“AddMin001.php”、“002.php”等等,Phpunit坚持运行002、003、004,然后是001
我尝试使用Phpunit.xml时总是会在/usr/share/php/Phpunit/Util/xml.php:212中生成:“未捕获的异常‘Phpunit_Framework_exception’,消息‘无法加载’”[redact]Phpunit.xml.“
创建AllTests.p
在cmdline中,一切正常:
d:\xampp\htdocs\PhpProject1\Tests>phpunit TestStub.php
PHPUnit 3.6.10 by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 2.75Mb
OK (1 test, 1 assertion)
在NetBeans7.1中调用:
Fatal error: Uncaught exception 'PHPUnit_Framework_Excepti
我用Selenium服务器测试了PHPUnit,但不能
测试类似于登录按钮的东西。如果我写我的登录名
元素css=input.login类似于$this->单击(“css=input.login”)
但是我在访问Selenium服务器时看到以下错误无效响应
而且` Value不实现接口事件。这是一个Selenium服务器错误,在最新版本中解决。但是在使用旧版本服务器的Netbeans Selenium服务器插件中仍然会遇到此错误
在这种情况下,安装Netabeans插件,从Selenium网站下
我们正在使用PHPUnit测试应用程序的部分内容。在某些测试中,我们希望更改参数值或覆盖服务(但仅针对该测试,而不是针对所有测试)
在测试中配置Symfony容器的推荐方法是什么?
我们遇到的问题是,当动态设置config时,容器不会自行重新编译(因为它只在文件更改时才自行重新编译)。您不会在单元测试中测试容器或配置。
在单元测试中,目标是在没有完整应用程序堆栈的情况下测试封装的单元
对于功能测试,建议在app/config/config_test.yml
config_dev.yml中的所有值
在对脚本执行PHPUnit测试期间,我遇到了“启动会话失败”错误。我的决议是:
由此:
$session=newsession()
致:
它现在可以工作了,但是,我关心的是,我是否需要在每次仅测试时放置新的MockFileSessionsStorage())?或者我可以简单地把它放在那里,不会影响我的非测试工作流?这个配置通常在config_test.yml文件中进行。我不明白,你能解释更多吗?嗨@Leandro,对不起,我的英语,我说,通常,出于功能测试的目的,会话以相同的方式模拟,但此配置存
我想知道如何在通过YAML装置运行Sapphire测试后删除临时数据库。也许在teardown函数中有一些代码可以删除TMPDB
仅供参考,即使我的所有测试都通过,tmp DB仍然落后。我知道在其他phpunit框架中,运行测试时出现错误可能会导致进程中止,从而留下tmp数据库。根据您的SilverStripe版本,对于3.x版,您可以运行yourdomain/dev/build/cleanupdb。对于版本4,它是yourdomain/dev/tasks/CleanupTestDatabase
如何进行phpunit测试,如果1中存在某个javascript文件。标题2。身体
示例(phpunit如何测试头中的file1.js+正文中的file2.js?):
谢谢
Yosef在您的示例中,您可以将其作为
$this->assertTrue($this->isElementPresent("//head/script[@src='file1.js']"));
$this->assertTrue($this->isElementPresent("//body/s
我的测试套件中有几个测试正在Zend_测试中运行
一个测试通过PHPUnit的MockBuilder创建一个模拟Foo_Bar_Baz,作为该类的依赖项。现在在对Foo_BAR_baz的测试中(case中的更改是故意的,并且由于自动加载是必要的),我得到的不是类,而是mock的一个实例,它显然不起作用
对对象执行var_dump会导致类Foo_Bar_Baz#27115(0){},因此它似乎正在创建模拟的实例
在模拟中修复的情况会使事情按预期工作。我以前从未在模拟对象中见过这种行为。出于某种原因
据我所知,可以通过名称将文件和目录从代码覆盖范围中排除,但是否可以通过匹配模式将其排除
我这样问是因为我不想在我的phpunit.xml中一个接一个地提到我的视图子文件夹的路径。像*/view之类的东西?我的意思是“排除所有view文件夹,无论您在哪里找到它们” 是的,您可以指定要从代码覆盖范围中排除的文件模式。下面是我的一个PHPUnit.xml.dist文件的示例
<!-- Add files not covered with tests into Code Coverage Anal
GNU Parallel可用于大大加快Travis CI的PHPUnit测试,如下所示:
find tests -type f -name "*Test.php" | \
parallel --gnu --keep-order \
"echo '== {} =='; \"$(dirname "$0")/../vendor/bin/phpunit\" --verbose {};"
像这样加速单元测试的问题是,当单元测试失败时,有时很难确定哪一个单元测试失败了。特别是如果有1000多个
上一页 1 2 ...
11 12 13 14 15 16 ...
下一页 共 16 页