热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法在PHPUnit中使用数据提供程序运行单个测试-CannotrunsingletestwithdataproviderinPHPUnit

Ivegotaproblemwhenusingcommandlinetoruntests:ifIrunphpunitlikethis:使用命令行运行测试时遇到问题

I've got a problem when using command line to run tests: if I run phpunit like this:

使用命令行运行测试时遇到问题:如果我运行phpunit这样:

phpunit -–no-configuration -–filter testAdd DataTest DataProviderTest.php

it works fine. But we use a regular expression to specify exactly the name of the method that we want to be tested:

它工作正常。但是我们使用正则表达式来指定我们想要测试的方法的名称:

phpunit -–no-configuration -–filter /::testAdd$/ DataTest DataProviderTest.php

The second approach is not working unfortunately. Source code is:

不幸的是,第二种方法不起作用。源代码是:

assertEquals($c, $a + $b);
    }

    public function provider()
    {
        return array(
          array(0, 0, 0),
          array(0, 1, 1),
          array(1, 0, 1),
          array(1, 1, 3)
        );
    }
}

?>

4 个解决方案

#1


13  

The regex to handle tests with or without data sets is

使用或不使用数据集来处理测试的正则表达式是

phpunit --filter "/::( with data set .*)?$/"  

For example

phpunit --filter "/::testAdd( with data set .*)?$/" DataTest DataProviderTest.php

Since a test method won't have a space in the name unless it has a data set, you could really shrink this to

由于测试方法在名称中没有空格,除非它有数据集,否则您可以将其缩小为

phpunit --filter "/::testAdd( .*)?$/" DataTest DataProviderTest.php

#2


6  

Like @sjoerd pointed out the name that gets matched against contains the number of the dataset.

就像@sjoerd指出的那样,匹配的名称包含数据集的编号。

That means that this works:

这意味着这有效:

phpunit --filter "testAdd with data set #0" DataTest DataProviderTest.php

against your file produces:

对你的文件产生:

PHPUnit 3.7.0RC1 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 5.25Mb

OK (1 test, 1 assertion)

tested in PHPUnit 3.5 and upwards.

在PHPUnit 3.5及更高版本中测试过。


It's not really pretty and having another syntax for this within PHPUnit is definitely preferable but for now it might solve your problem and once someone sends a PR it will be nicer to use ;)

它不是很漂亮,在PHPUnit中有另一种语法是绝对可取的,但现在它可以解决你的问题,一旦有人发送PR,它将更好用;)

Tracking issue for the nicer syntax on the phpunit github issue tracker

跟踪phpunit github问题跟踪器上更好语法的问题

#3


1  

In this case, the regex is matched against the following string:

在这种情况下,正则表达式与以下字符串匹配:

DataTest::testAdd with data set #0
DataTest::testAdd with data set #1
...

So naturally your regex testAdd$ won't work.

所以你的正则表达式testAdd $自然会起作用。

#4


1  

The regex in the answer no longer seems to work (at least not in 4.0.12).

答案中的正则表达式似乎不再起作用(至少在4.0.12中没有)。

It looks like --filter doesn't like the space, and gives the following error:

它看起来像--filter不喜欢这个空格,并给出以下错误:

Fatal error: "preg_match(): Compilation failed: missing ) at offset

致命错误:偏移时出现“preg_match():编译失败:缺失”

This is fixed by replacing the space with \s The quotes also need to get removed (or else the \ needs to be \)

这可以通过用\ s替换空格来修复。引号也需要删除(否则\需要是\)

phpunit --filter /::testAdd(\s.*)?$/ DataTest DataProviderTest.php

推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • const限定符全解一、const修饰普通变量  intconsta500;  constinta600;  上述两种情况相同,都是声明一个const型的变量,它们 ... [详细]
  • 表达式树摘录(1)
    本文主要讲述ConstantExpression介绍表示具有常量值的表达式。ParameterExpression介绍表示命名的参数表达式。UnaryExpression介绍表示包 ... [详细]
author-avatar
阿宅是时候听孙燕姿思_542
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有