1

我有一些代码要从 Cake 1.3 迁移到 Cake 2.4.1,我的一个测试用例出现内部错误。它告诉我它找不到引用的夹具类。我试图引用的夹具类存储在一个子目录下: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. 我已经在谷歌上搜索了一段时间,并将继续这样做,但我想在这里问一下,以防万一有人知道如何解决这个问题。很有可能我错过了一些非常明显的东西,但我在这个上旋转我的轮子。

4

3 回答 3

1

从 2.x 文档推断,看起来您在 2.4 的子目录中不能有固定装置。

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

从 2.5.0 开始,您可以在子目录中加载固定装置。如果您有一个更大的应用程序,使用多个目录可以使组织您的设备变得更容易。要在 >subdirectories 中加载夹具,只需在夹具名称中包含子目录名称:

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

于 2014-04-03T17:03:36.987 回答
0

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

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

于 2014-03-12T08:55:46.613 回答
0

我不会像那样迁移到 2.4.1。

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

于 2013-11-09T00:13:06.893 回答