cakephp2.xでシェルプログラム「app/Console/Command/TestShell.php」を作りました。
シェル自体は動くのですがPHPUnit(初心者です)のテストコードをブラウザから起動すると白画面となり、error.logには以下エラーが出ています。
Error: Fatal Error (1): Class 'AppShell' not found in
Error: [FatalErrorException] Class 'AppShell' not found
PHPUnitのsetUp()の中はネットから調べてよくわからないまま書いているのでそれが原因かもしれませんが、何かわかりましたらお願い致します。
■Shellプログラム
app/Console/Command/TestShell.php
App::uses('ComponentCollection', 'Controller');
App::uses('TestCommonComponent', 'Controller/Component');
class TestShell extends AppShell {
public $uses = array(
'TestModel1',
'TestModel2'
);
public function startup() {
parent::startup();
}
public function main() {
■PHPUnit
app/Test/Case/Console/Command/TestShellTest.php
<?php
App::uses('ConsoleOutput', 'Console');
App::uses('ShellDispatcher', 'Console');
App::uses('Shell', 'Console');
App::uses('Folder', 'Utility');
App::uses('TestShell', 'Console/Command');
class TestShellTest extends CakeTestCase {
public $target;
public function setUp() {
parent::setUp();
$output = $this->getMock('ConsoleOutput', array(), array(), '', false);
$error = $this->getMock('ConsoleOutput', array(), array(), '', false);
$in = $this->getMock('ConsoleInput', array(), array(), '', false);
$this->target = new TestShell($output, $error, $in);
$this->target->initialize();
}
public function tearDown() {
parent::tearDown();
}
public function testCommon(){
//ここにテストを書く
$this->assertEquals(0, 0);
}
}