Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么phpunit跳过了我的大部分测试,即使它们的依赖关系成功了?

为什么phpunit跳过了我的大部分测试,即使它们的依赖关系成功了?
EN

Stack Overflow用户
提问于 2012-06-15 04:52:46
回答 2查看 2.8K关注 0票数 2

我有一个类似于这样的PHPUnit测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @dataProvider provideSomeStuff
 */
public function testSomething($a, $b, $c)
{
    ...
}

/**
 * @dataProvider provideSomeStuff
 * @depends testSomething
 */
public function testSomethingElse($a, $b, $c)
{
    ...
}

/**
 * @depends testSomething
 */
public function testMoreStuff()
{
    ...
}

// Several more tests with the exact same setup as testMoreStuff

即使testSomething成功了,所有依赖它的测试都会被跳过。PHPUnit手册中的一些注释提示,测试可以依赖于使用数据提供程序的其他测试:

Note 当测试同时接收来自@dataProvider方法的输入以及它所依赖的一个或多个测试时,来自数据提供程序的参数将先于依赖测试的参数。 Note 当测试依赖于使用数据提供程序的测试时,当它所依赖的测试至少对一个数据集成功时,将执行依赖测试。不能将使用数据提供程序的测试结果注入到依赖的测试中。

所以我不知道为什么它会跳过我所有的测试。我已经挣扎了好几个小时了,谁来帮帮我。如果不能从上面的伪代码导出问题,请使用这是完整的测试代码

测试结果的截图:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-16 19:32:07

这似乎是phpunit 3.4.5中的一个bug,但是修复了phpunit 3.4.12中的错误。

下面是一个很小的例子,基于手册中的例子。在PHPUnit 3.4.5中,我得到了与您相同的行为,但在PHPUnit 3.6.11中获得了4次及格。缩小范围后,phpunit 3.4变更量g说它是在PHPUnit 3.4.12中修正的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class DataTest extends PHPUnit_Framework_TestCase
{

/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c)
{
$this->assertEquals($c, $a + $b);
}


/**
* @depends testAdd
*/
public function testAddAgain()
{
$this->assertEquals(5,3+2);
}

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

}
票数 2
EN

Stack Overflow用户

发布于 2015-12-29 12:19:53

必须在主方法之后定义依赖方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function testSomething()
{
    $foo = [];
    //test something
    return $foo;
}

/** 
 * @depends testSomething
 */
public function testBar(array $foo)
{
    //more tests 
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11051020

复制
相关文章
结构体内存对齐
#include <stdio.h> #include <string.h> #include <malloc.h> /* So, when you are working with image headers, binary headers, and network packets, and are trying to access the TCP/ IP header, structure padding has to be avoided. */ int main(int argc, char* a
用户4645519
2020/09/07
6660
结构体成员在内存中的对齐方式
这个话题还是很早以前讨论过,当时并没有好好的理解,最近在复习知识的时候又重新看了一遍资料,自己做一下总结,也希望后面有人需要学习时可以对他有所帮助。以下我会举两个结构体的例子,分别画图的方式表达对齐的原则。
我与梦想有个约会
2023/10/21
2140
结构体成员在内存中的对齐方式
结构体内存对齐_1
#include <stdio.h> #include <string.h> #include <malloc.h> /* So, when you are working with image headers, binary headers, and network packets, and are trying to access the TCP/ IP header, structure padding has to be avoided. */ int main(int argc, char* a
用户4645519
2020/09/07
3770
结构体内存对齐——2
#include <stdio.h> #include <string.h> #include <malloc.h> /* So, when you are working with image headers, binary headers, and network packets, and are trying to access the TCP/ IP header, structure padding has to be avoided. */ int main(int argc, char* a
用户4645519
2020/09/07
4110
结构体内存对齐解析
虽然所有的变量最后都会保存到特定的地址内存中去,但是相应的内存空间必须满足内存对齐的要求,主要基于存在以下两个原因:
wenzid
2021/03/04
5910
结构体内存对齐解析
CPP--借助神器VS理解内存存储(含大小端对齐)
前面我发过用vs看内存存储的文章,90%耐心看的都懂了,这次结合上次发的文章,对大小端对齐再来个说明(有一个没学过计算机的朋友都懂了,自己看自己的悟性定位吧~努力可以弥补99%的可能) 单位,补码之类
逸鹏
2018/04/11
8130
CPP--借助神器VS理解内存存储(含大小端对齐)
内存对齐
对于结构(或联合)的各个成员,第一个成员位于偏移为0,以后每个数据成员的偏移量必须是#pragma pack指定的数值和结构体(或联合)中最大数据成员长度 这2个数值中较小的一个的倍数。 使用伪代码表示: min(#pragma pack, 结构最大数据成员长度) * N
opencode
2022/12/26
1.2K0
内存对齐
内存对齐
内存对齐:#pragma pack(字节数) 如果用1,那么内存之间就没有空隙了
用户10731060
2023/09/02
2280
内存对齐
被Go语言称为寄存器宽度的这个值,就可以理解为机器字长,也是平台对应的最大对齐边界,而数据类型的对齐边界是取类型大小与平台最大对齐边界中的较小的那个
Michel_Rolle
2023/07/30
2.5K0
结构体的内存对齐规则
既然这样,那在设计结构体的时候,我们既要满足对齐,又要节省空间,如何做到:让占用空间小的成员尽量集中在一起。 如:
利刃大大
2023/04/12
4770
结构体的内存对齐规则
CSDN Markdown编辑器改变图片对齐方式(居中,左对齐,右对齐)及改变图片大小
我也是由于想博客更美观要使图片居中,查阅百度后,结合自己走的弯路,在此给大家提供借鉴。 使用CSDN中Markdown编辑器的帮助文档的方法插入图片Ctrl/Command + Shift + G,上传图片不要使用搜狗输入法,按键功能有冲突,上传完后如图
小火柴棒
2019/01/11
4K0
GO 内存对齐
之前遇到过这样一个情况(发现问题的结构体并不长这样, 不过为了引出问题, 改了一下):
烟草的香味
2020/11/25
1.3K0
GO 内存对齐
详解内存对齐
在了解内存对齐之前,先来明确几个关于操作系统的概念,更加方面我们对内存对齐的理解。
Golang梦工厂
2022/07/11
1.2K0
详解内存对齐
C&C++结构体内存对齐
不是所有硬件平台都能访问任意地址上的任意数据,某些硬件平台只能在某些特定地址处取某些特定的数据,否则就会抛出硬件异常。也就是说计算机在读取内存数据时,只能在规定的地址处读数据,而不是在内存中任意位置都会可以读取的。
半生瓜的blog
2023/05/13
2470
C&C++结构体内存对齐
【C语言笔记】结构体内存对齐
在32位编译系统下这一个结构体的字节数是多少呢?是1+4+1+2=8字节吗?不是的,实际结果为12字节。为什么呢?因为编译器会对不足4字节的变量空间自动补齐为4个字节(这就是内存对齐),以提高CPU的寻址效率(32位CPU以4个字节步长寻址的)。
正念君
2019/06/26
6740
【C语言笔记】结构体内存对齐
浅谈Golang内存对齐
如果你在 golang spec 里以「alignment」为关键字搜索的话,那么会发现与此相关的内容并不多,只是在结尾介绍 unsafe 包的时候提了一下,不过别忘了字儿越少事儿越大:
LA0WAN9
2021/12/14
1.4K0
浅谈Golang内存对齐
内存对齐(C++)
众所周知,C++的空类占用1个字节的内存空间,非空类占用的空间与类内的成员有关。 但类中成员所占内存并不是连续的,拿以下代码举例:
LonelyEnderman
2022/10/27
9920
内存对齐(C++)
结构体对齐
现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
用户7272142
2023/10/11
2300
结构体对齐
Go内存对齐详解
在《小许code:Go内存管理和分配策略》这篇分享中我们了解到Go是怎么对内存进行管理和分配的,那么用户的程序进程在linux系统中的内存布局是什么样的呢?我们先了解一下基础知识,然后再看Go的内存对齐。
小许code
2023/04/14
2.1K0
Go内存对齐详解
内存对齐(Memory Alignment)
本文介绍了内存对齐的概念,包括内存对齐的原则和具体说明,并通过实例进行了详细解释。
用户1148523
2018/01/09
8630

相似问题

React Hooks -无效的Hook调用

28

无效的Hook调用React本机

15

使用React表单的useQuery (从React查询)抛出无效的Hook调用

112

React,react路由器useHistory。未捕获的错误:钩子调用无效

166

异步API调用的Hook调用无效

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文