关于测试……
在Twitter上有一些关于symfony插件的质量和数量的讨论。欧宝娱乐app下载地址这是一个很好的机会来介绍symfony 1.3中引入的一个新特性,它允许您将测试从插件挂接到symfony中欧宝娱乐app下载地址测试:*
只需几行代码的命令。
的sfPluginConfiguration
类,在symfony 1.2中引入,现在包欧宝娱乐app下载地址含一个connectTests ()
方法。这个方法,从它的名字就可以看出,它将插件中的测试连接到当前项目中。您可以从ProjectConfiguration
类:
[php] // config/ProjectConfiguration.class.php类ProjectConfiguration extends sfProjectConfiguration{公共函数设置(){$this->enablePlugins('myPlugin');}公共函数setupPlugins() {$this->pluginConfigurations['myPlugin']->connectTests();}}
有了这些代码之后,从并且
将包括当任何symfony的欧宝娱乐app下载地址测试:*
任务运行:
$ php 欧宝娱乐app下载地址symfony测试:所有$ php symfony测试:单元$ php symfony测试:单元myplugclasass $ php symfony测试:功能前端$ php symfony测试:功能前端myPluginModuleActions
您可以将自己的逻辑添加到此连接代码中。例如,如果您使用前缀插件作为组织项目代码的手段,您可以运行一个快速循环来连接所有项目插件的测试:
[php]公共函数setupPlugins() {foreach ($this->plugins as $plugin){//检查您的项目的前缀if (0 === strpos($plugin, 'my')) {$this->pluginConfigurations[$plugin]->connectTests();}}}
一些额外的
如果您的项目使用sfTaskExtraPlugin,一个由核心团队维护的插件,您可以访问测试:插件
命令。这是运行特定插件的整个测试套件的最佳方式。
myPlug欧宝娱乐app下载地址in . php symfony test
请注意而核心
测试:*
命令要求您调用sfPluginConfiguration: connectTests ()
从您的项目配置中,以包括来自插件的测试测试:插件
命令则不然。仍然需要启用插件。
task-extra插件还包括一个生成:测试
任务,它可以很容易地快速启动一个新的单元测试:
测试mypl欧宝娱乐app下载地址ugclasass——editor-cmd=mate
类中创建存根单元测试myPluginClassTest.php
嵌套在插件中的文件测试/单位/
目录以这样的方式复制目录结构lib /
.将test目录组织为lib目录的镜像,可以运行覆盖测试:
命令,如果你安装了Xdebug:
$ PHP 欧宝娱乐app下载地址symfony测试:覆盖测试/单元/util lib/util——详细
循序渐进的
让我们假设你正在考虑sfFormExtraPlugin为了你的项目。评估该插件的一种方法是评估其测试套件的质量。这可以通过三个简单的步骤完成:
安装插件:
$ php 欧宝娱乐app下载地址symfony plugin:安装sfFormExtraPlugin
运行插件的测试套件:
$ php 欧宝娱乐app下载地址symfony test:plugin sfFormExtraPlugin
检查插件的测试覆盖率:
$ php 欧宝娱乐app下载地址symfony测试:覆盖插件/sfFormExtraPlugin/test \ plugins/sfFormExtraPlugin/lib
去测试吧!
欧宝娱乐app下载地址Symfony一直倡导编写自动化测试,并提供了在项目中进行自动化测试所需的工具,但对测试插件的支持一直很有限。希望通过symfony 1.3和sfTaskExtraPlugin中引入的这些增强,更多的插件开发欧宝娱乐app下载地址人员将在他们的插件中包含测试套件,更多的用户将运行它们。
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
好吧,这是一个巨大的任务,需要大量的机器定期运行所有这些测试,但让我想象一下;)
对我来说,插件有一个大问题——有很多插件,其中一些真的很好,但有时真的很难找到它们。这就像在地上找到钱一样——你要么幸运,要么不幸运。这是因为很少有人标明他们确实使用symfony插件。欧宝娱乐app下载地址顶级插件的用户不到500人。你能相信吗?我不知道:)也许是现在数据显示的100倍?
结果是,在近1k的插件中,只有前10名(或前30名)是知名的。应该有更多的特性来判断一个插件是否物有所值。也许是“下载计数”(使用从www.symfony-project.org .tar.gz或CLI symfony插件欧宝娱乐app下载地址:install下载)?这些数字会真实得多。这将是自动的,不需要编写太多代码。我们必须意识到symfony社区插件正在成欧宝娱乐app下载地址为一个强大的工具欧宝下载链接…
另一个评价插件的选择是NiKo的想法。你怎么看?
很棒的帖子,Kris。非常有用的东西。
运行:
$ 欧宝娱乐app下载地址symfony测试:功能
无论您尝试什么应用程序,都将同时执行。这是错误的,因为对于前端和后端,一个测试将失败。
我可以通过运行:
$ 欧宝娱乐app下载地址symfony测试:functional frontend/*
而且
$ 欧宝娱乐app下载地址symfony测试:功能后端后端/*
这样,测试只针对适当的应用程序执行(取决于文件夹组织)。
但是现在——xml=test-results.xml选项不会生成xml。