描述

我有一个TestSuite,我需要标记为跳过(整个测试套件 – 不是套件中的具体测试用例).

class AllTests
{    
    public static function suite()
    {
        // this does not work same as within TestCase:
        // throw new \PHPUnit_Framework_SkippedTestError("Out of order");

        $Suite = new \PHPUnit_Framework_TestSuite(__NAMESPACE__);
        $Suite->addTestSuite(translators\AllTests::cls());
        $Suite->addTestSuite(TlScopeTest::cls());
        $Suite->addTestSuite(TlNsTest::cls());
        $Suite->addTestSuite(TlElementTest::cls());
        $Suite->addTestSuite(TlItemTest::cls());
        $Suite->addTestSuite(LangCodeTest::cls());
        $Suite->addTestSuite(TlElemclasstagTest::cls());
        return $Suite;
    }
}

正如你可以看到,抛出PHPUnit_Framework_SkippedTestError异常不起作用.它不被PHPUnit捕获,并且将任何未捕获的异常中断执行(这是可以理解的,因为在实际运行测试之前,在构建测试层次结构时调用了suite()方法).

我看到一个名为PHPUnit_Framework_SkippedTestSuiteError的异常类,但没有线索如何利用它.有任何想法吗?

动机

我有一个TestSuite,它集合了许多测试用例以及其他测试套件.几乎每一次测试都失败了,因为我在代码核心的变化.

问题是这个包不是关键的,并且计划在以后修复.在此之前,我必须为每个其他软件包运行测试,但是当我执行PHPUnit输出时,这些错误来自相关软件包.这迫使我检查每次任何故障是否来自任何其他包装.

正如你所怀疑的那样,这是很容易受到人为错误的影响,即我可能会错过一个失败,这实际上是重要的.

我只能运行我正在工作的测试套件,但是我无法控制一个包中的更改是否导致其他包中的故障.

我不想评论这个测试套件,因为我恐怕我(或者谁会接管我的代码)可以完全忘记它.

好的,所以我把它放在一起:

> AllTests类必须重构以扩展PHPUnit_Framework_TestSuite.
>这使得该类成为一个非常有价值的TestSuite,并允许在套件级别实现setUp方法.
> setUp方法由测试运行器(而不是由构建器)调用,因此抛出一个SkippedTestError异常是安全的.
>在测试套件中执行的相应方法称为markTestSuiteSkipped(注意方法名称中的Suite).

整个课程将如下所示:

class AllTests extends \PHPUnit_Framework_TestSuite
{    
    protected function setUp()
    {
        $this->markTestSuiteSkipped("zzz");
    }

    public static function suite()
    {
        $Suite = new self(__NAMESPACE__);
        $Suite->addTestSuite(translators\AllTests::cls());
        $Suite->addTestSuite(TlScopeTest::cls());
        $Suite->addTestSuite(TlNsTest::cls());
        $Suite->addTestSuite(TlElementTest::cls());
        $Suite->addTestSuite(TlItemTest::cls());
        $Suite->addTestSuite(LangCodeTest::cls());
        $Suite->addTestSuite(TlElemclasstagTest::cls());
        return $Suite;
    }
}

输出是一个很好的S字母块,它明确表示,我们跳过了很多测试.这不能逃避我们的注意,但允许我们的测试通过.

如何在PHPUnit中跳过/标记不完整的整个测试套件?的更多相关文章

  1. swift 字符串创建类

    先看个OC的swift

  2. 使用PHPUnit进行单元测试并生成代码覆盖率报告的方法

    这篇文章主要介绍了使用PHPUnit进行单元测试并生成代码覆盖率报告的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. laravel单元测试之phpUnit中old()函数报错解决

    这篇文章主要给大家介绍了关于laravel单元测试之phpUnit中old()函数报错的解决过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

  4. 使用phpunit进行接口自动化测试

    下面小编就为大家分享一篇使用phpunit进行接口自动化测试,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  5. PHPUnit测试私有属性和方法功能示例

    这篇文章主要介绍了PHPUnit测试私有属性和方法功能,结合实例形式较为详细的分析了使用PHPUnit针对私有属性和方法进行测试的相关操作技巧与注意事项,需要的朋友可以参考下

  6. php单元测试phpunit入门实例教程

    这篇文章主要介绍了php单元测试phpunit,结合实例形式分析了php单元测试phpunit的基本概念、使用方法及相关注意事项,需要的朋友可以参考下

  7. PHPUnit 单元测试安装与使用入门教程

    这篇文章主要介绍了PHPUnit 单元测试安装与使用,结合实例形式分析了PHPunit单元测试的下载、安装、测试运行相关操作技巧与使用注意事项,需要的朋友可以参考下

  8. PHP单元测试PHPUnit简单用法示例

    这篇文章主要介绍了PHP单元测试PHPUnit简单用法,结合实例形式分析了PHPUnit的安装、单元测试简单操作技巧,需要的朋友可以参考下

  9. python类名和类方法cls修改类变量的值

    这篇文章主要介绍了python类名和类方法cls修改类变量的值,通过类对象是无法修改类变量的值的,本质其实是给类对象新添加 name 和 age 变量,下文更多的相关介绍需要的小伙伴可任意参考一下

  10. PHP测试框架PHPUnit组织测试操作示例

    这篇文章主要介绍了PHP测试框架PHPUnit组织测试,结合实例形式分析了PHPUnit组织测试具体步骤、相关命令与操作技巧,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部