我有一些代码,我正在从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
。我一直在谷歌上搜索一段时间,并将继续这样做,但我想问这里,以防万一有人知道如何调和这个问题。机会是我错过了一些非常明显的东西,但我正在转动这一个。
答案 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)
我遇到了同样的问题。我提交了拉取请求,你可以在这里找到它: