【问题标题】:How can I extend PHPUnit?如何扩展 PHPUnit?
【发布时间】:2014-07-08 19:32:16
【问题描述】:

PHPUnit 手册是这样说的:

"在抽象子类中编写自定义断言和实用方法 PHPUnit_Framework_TestCase 并从中派生您的测试用例类 那堂课。这是扩展 PHPUnit 的最简单方法之一。”

所以我想我会做这样的事情:

class MyTestCase extends PHPUnit_Framework_TestCase {

  // new methods go here

}

然后我将从这个类中派生出我自己的测试用例。但问题是我把这段代码放在哪里?我的意思是,在我的测试目录中的哪个文件中?

如果我把它放在它自己的文件中,或者放在任何特定测试文件的开头,那么,因为我不知道测试运行的顺序,我不能确定类定义是在需要之前包括在内。

您曾经能够定义一个引导文件,该文件将在任何测试之前运行,以进行初始设置,但该功能已从最新版本的 PHPUnit 中删除。 PHPUnit 手册没有解释原因,但它确实说在测试之间共享夹具是不好的做法,所以也许该功能已被删除以阻止共享夹具的诱惑。

目前我唯一能想到的是将 include_once() 放在我所有测试文件的顶部 - 本质上是手动重新创建已弃用的引导功能,但以更容易出错和乏味的方式。

【问题讨论】:

    标签: php phpunit


    【解决方案1】:

    您曾经能够定义一个引导文件,该文件将在任何测试之前运行,以进行初始设置,但该功能已从最新版本的 PHPUnit 中删除。

    这是错误的。我不知道你从哪里得到的。引导文件的功能并未从代码或文档中删除。

    【讨论】:

    • 我从手册中得到它:phpunit.de/manual/current/en/appendixes.configuration.html bootstrap 行已被注释掉。我在尝试使用引导选项时发现了这一点,但它不起作用。
    • 我认为这不是删除的有效证据。这包含在清单中,说明 XML 属性对应于命令行选项。并且--bootstrap 命令行并没有被删除。
    • 此外,注释引导属性已添加到 2014-01-17 的 4.1 文档中,因为之前的版本也包含它。包含注释引导属性的第一个版本是 3.5,起源于大约 2011 年。
    • 所以:如果它不起作用,请更详细地告诉我们你做了什么。你在某处做错了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2018-06-05
    • 2017-09-11
    • 1970-01-01
    • 2014-06-02
    • 2015-06-19
    相关资源
    最近更新 更多