Cake PHP 2.4.1:如何在子目录中存储fixture

时间:2013-10-01 18:00:17

标签: php cakephp-2.0 fixtures

我有一些代码,我正在从Cake 1.3迁移到Cake 2.4.1,并且我的一个测试用例出现内部错误。它告诉我它找不到引用的夹具类。我试图引用的fixture类存储在一个子目录下:app / Test / Fixture / Ds1,它与早期版本的Cake一起工作正常。这是我的测试/夹具精简:

// app/Test/Case/Model/TestTest.php

<?php
class TestTest extends CakeTestCase {
    public $fixtures = array('app.ds1.test'); // Trying to load this fixture.
    public function testStuff()
    {
        $this->assertEqual(0, 0);
    }
}

// app/Test/Fixture/Ds1/TestFixture.php

<?php
class TestFixture extends CakeTestFixture {
}

我收到的内部错误是Referenced fixture class Ds1.test (Test\Fixture\Ds1.testFixture.php) not found。我一直在谷歌上搜索一段时间,并将继续这样做,但我想问这里,以防万一有人知道如何调和这个问题。机会是我错过了一些非常明显的东西,但我正在转动这一个。

3 个答案:

答案 0 :(得分:1)

从2.x文档中推断,看起来你不能在2.4中的子目录中拥有灯具。

来自http://book.cakephp.org/2.0/en/development/testing.html

  

从2.5.0开始,您可以在子目录中加载灯具。如果你有一个更大的应用程序,使用多个目录可以使它更容易组织你的灯具。要在&gt;子目录中加载灯具,只需在灯具名称中包含子目录名称:

     

class ArticleTest扩展CakeTestCase {      public $ fixtures = array('app.blog/article','app.blog/comment');   }   在上面的例子中,两个灯具都将从App / Test / Fixture / blog /.

加载

答案 1 :(得分:0)

我不会那样迁移到2.4.1。

由于它是一个非常古老的代码(1.3),我会首先迁移到2.1。

答案 2 :(得分:0)

我遇到了同样的问题。我提交了拉取请求,你可以在这里找到它:

https://github.com/cakephp/cakephp/pull/3005