【问题标题】:How to run lime test in Symfony plugin?如何在 Symfony 插件中运行石灰测试?
【发布时间】:2011-06-21 08:43:43
【问题描述】:

我在 Symfony 1.4 中有一个插件,我为他创建了一些测试,将它们放入 ROOT/myPlugin/test/unit/MyTest.php

插件是用sfTaskExtraPlugin生成的。

MyTest.php的内容是:

<?php

require_once dirname(__FILE__).'/../bootstrap/unit.php';
$t = new lime_test(1); 
$r = new My();
$v = $r->getSomething(2);
$t->is($v, true);         

?>

当我运行./symfony test:unit Rights 时,响应为&gt;&gt; test no tests found

但是,如果我将 MyTest.php 文件复制到 ROOT/test/unit 中,则命令 ./symfony test:unit Rights 正在工作。

插件在ProjectConfiguration.class.php启用

如果我在插件中编写测试,为什么测试不起作用?

【问题讨论】:

    标签: unit-testing testing symfony1 symfony-1.4 lime


    【解决方案1】:

    默认情况下不运行插件测试(有充分的理由 - 为什么要在每次测试应用时都为 3rd 方插件运行测试?)。

    像这样编辑您的 ProjectConfiguration:

    class ProjectConfiguration extends sfProjectConfiguration
    {
      public function setup()
      {
        $this->enablePlugins('myPlugin');
      }
    
      public function setupPlugins()
      {
        $this->pluginConfigurations['myPlugin']->connectTests();
      }
    }
    

    这将运行给定插件的测试以及项目的测试。取自symfony.com, about testing plugins

    【讨论】:

    • 感谢重播。我现在收到此错误PHP Fatal error: Cannot redeclare class ProjectConfiguration in ROOT/path/to/plugins/myPlugin/test/fixtures/project/config/ProjectConfiguration.class.php on line 18
    • 不要只是在其中复制粘贴我的代码 - 编辑您的代码使其看起来像它(用 myPlugin 替换您的插件名称等)
    • 是的,这就是我所做的。我已将我的插件名称放入:$this-&gt;pluginConfigurations['MY_PLUGIN_NAME']-&gt;connectTests();
    • 根据错误,您确实将整个内容复制粘贴到了那里。
    • 我想我已经全部复制了。但请注意,错误中指向的是插件ROOT/path/to/plugins/myPlugin/test/fixtures/project/config 中的ProjectConfiguration.‌​class.php,而不是主要的config/ProjectConfiguration.‌​class.php。为什么指向那里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    相关资源
    最近更新 更多