加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHPUnit – 当dataProvider返回一个空数组时,不要失败

发布时间:2020-12-13 17:47:15 所属栏目:PHP教程 来源:网络整理
导读:我有一个使用@dataProvider的 PHPUnit测试.数据提供程序检查文件系统中的某些文件. 但是,我在不同的环境中使用此测试,这意味着文件不存在会发生.这意味着dataProvider没有找到任何内容,并且没有执行测试. 这导致测试运行以失败告终. 问题:是一种配置PHPUnit
我有一个使用@dataProvider的 PHPUnit测试.数据提供程序检查文件系统中的某些文件.

但是,我在不同的环境中使用此测试,这意味着文件不存在会发生.这意味着dataProvider没有找到任何内容,并且没有执行测试.

这导致测试运行以失败告终.

问题:是一种配置PHPUnit以忽略具有不产生任何提供者的测试的方法吗?

解决方法

虽然我不知道任何phpunit选项(这并不意味着一个不存在),你可以使用如下内容:

public function providerNewFileProvider()
{
    //get files from the "real" provider
    $files = $this->providerOldFileProvider();
    //no files? then,make a fake entry to "skip" the test
    if (empty($files)) {
        $files[] = array(false,false);
    }

    return $files;
}

/**
* @dataProvider providerNewFileProvider
*/

public function testMyFilesTest($firstArg,$secondArg)
{
    if (false === $firstArg) {
        //no files existing is okay,so just end immediately
        $this->markTestSkipped('No files to test');
    }

    //...normal operation code goes here
}

当然,这是一种解决方法,但它应该可以阻止错误显示.显然,无论你做什么都将取决于第一个(或任意)参数是否允许为假,但你可以进行调整以适合你的测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读