通过单元测试,我们可以验证我们的源代码的部分按预期工作。在我们更改代码或执行重构之后,单元测试可以告诉我们是否发生了改变,从而破坏了现有的功能。只有当所有的测试都是“绿色”(所有的测试都通过了),我们才能确定我们没有破坏我们代码的功能。
PhpStorm使用PHPUnit作为测试运行器,这是一个广泛使用的PHP单元测试框架,它提供了很多功能。我们来看看它是如何与PhpStorm整合的。
- 1.将单元测试添加到项目中
- 2.为我们的项目启用PHPUnit
- 3.运行单元测试
- 4.检查测试结果
1.将单元测试添加到项目中
向一个项目添加单元测试可以用几种方法来完成。我们可以创建一个新文件并选择PHPUnit | PHPUnit测试 文件模板。为某个特定类创建测试的另一种方法是调用“ 转到测试”操作(使用导航|转到测试或Cmd + Shift + T / Ctrl + Shift + T)并选择“ 创建新测试”。
创建新测试的任何一种方法都会打开“ 创建新的PHPUnit测试” 对话框,我们可以在其中指定要测试的类的名称,测试类的名称和名称空间以及PHP文件的保存位置。
点击确定后,将生成样板单元测试课程。
2.为我们的项目启用PHPUnit
从上面生成的类中可以看到,没有自动完成支持,PhpStorm不知道PHPUnit提供的PHPUnit_Framework_TestCase类。这是为什么?因为我们还没有为我们的项目启用PHPUnit。我们来做吧
我们可以通过几种方式引用PHPUnit,具体取决于偏好或项目标准。
- 一种方法是通过Composer在PhpStorm中安装PHPUnit。
- 另一种方法是将PHPUnit作为PHAR文件下载并在我们的单元测试代码中加载PHAR文件。
- 另一种方法是使用PEAR安装PHPUnit,但这 是PhpUnit <5的过时选项。
对于本教程,让我们通过PHAR文件来支持PHPUnit支持。从设置 (Mac上的首选项) | 语言和框架| PHP | PHPUnit,我们可以指定我们如何加载PHPUnit。提供的选项与上面所述的选项相同(包括路径,作曲家或PHAR)。我们不必从www.phpunit.de自己抓取phpunit.phar文件:我们可以让PhpStorm为我们下载它。
我们继续,将PHPUnit PHAR文件下载到我们项目的根文件夹中。
或者,我们也可以指定一个phpunit.xml配置文件的路径,或指定一个引导文件的路径(在运行单元测试之前运行任意PHP代码)。
在关闭设置并给IDE一段时间来为项目中的新归档建立索引后,我们现在可以在所有PHPUnit的类和函数上获得全面的自动完成支持:
3.运行单元测试
在PhpStorm中运行PHPUnit测试最简单的方法是右键单击测试,然后选择> 运行“ 测试名称 ”。可以通过在编辑器中直接右键单击或通过在“项目工具”窗口中选择类文件来运行测试/分离方法。 一旦运行,PHPUnit运行配置将自动创建:您可以在运行 菜单 >编辑配置...中 查看它。它应该出现在PHPUnit节点下,并以我们运行的测试文件命名。
我们也可以手动创建一个测试运行配置,但是它通常太麻烦,应该为高级的PHPUnit测试配置保留。当我们创建新的PHPUnit运行配置(或编辑现有的配置)时,我们可以提供运行配置名称,运行哪些测试(目录中的所有测试,特定测试类或特定测试)等详细信息。还支持添加测试运行器参数或PHP解释器选项。
4.检查测试结果
我们现在准备运行(或调试)我们的单元测试!让我们这样做:只需右键单击一个PHPUnit测试,然后选择“ 运行” 测试名称 “... ”。这将弹出一个新的工具窗口,其中将显示测试结果。
测试结果工具窗口分为两个主要区域:左侧允许我们过滤测试或导出结果,并深入查看所有单元测试,看看哪些测试成功,哪些失败。正确的区域向我们展示了原始的PHPUnit输出。
从测试结果中,我们也可以使用上下文菜单来执行一些操作,例如运行一个特定的测试或导航到测试源代码。
请记住,您还可以调试单元测试,以及使用“ 分析PHP应用程序性能”中概述的技术来分析测试运行性能。
最后,你可以重新运行测试。仅支持重新运行失败的测试。