在没有Cake控制台的情况下,如何使用CakePHP测试运行PHPUnit?

在没有Cake控制台的情况下,如何使用CakePHP测试运行PHPUnit?,cakephp,gruntjs,phpunit,cakephp-2.5,Cakephp,Gruntjs,Phpunit,Cakephp 2.5,我想用Grunt自动化CakePHP测试,并找到Grunt.loadNpmTasks('Grunt-phpunit'),它可以自动化PHPUnit,但我确信它不能处理蛋糕测试 我还对从Grunt运行cake test的解决方案感到满意,但我真正感兴趣的是运行PHPUnit命令的方法,它可以执行CakePHP测试 编辑:我正在使用CakePHP的最新稳定版本,现在是2.5.4。我假设grunt phpunit期望默认的标准phpunit执行,如果这是真的,您不能以这种方式运行,您必须熟练使用此工具

我想用Grunt自动化CakePHP测试,并找到
Grunt.loadNpmTasks('Grunt-phpunit')
,它可以自动化PHPUnit,但我确信它不能处理
蛋糕测试

我还对从Grunt运行
cake test
的解决方案感到满意,但我真正感兴趣的是运行PHPUnit命令的方法,它可以执行CakePHP测试


编辑:我正在使用CakePHP的最新稳定版本,现在是2.5.4。

我假设grunt phpunit期望默认的标准phpunit执行,如果这是真的,您不能以这种方式运行,您必须熟练使用此工具。我猜它正在解析测试输出。CakePHP2不允许您像使用CakePHP now和其他LIB一样简单地运行“phpunit”。CakePHP2扩展了phpunit测试类,因此我怀疑您是否可以在不使用cakephp测试shell的情况下运行它们

我们使用Jenkins和我们自己定制的脚本来自动化测试。

我找到了一个解决方案

在一次会议上,我发现了一个有趣的想法:

首先,我必须将
webroot/test.php
复制为
webroot/phpunit.php
,并替换最后一行:

--- a/webroot/test.php
+++ b/webroot/phpunit-bootstrap.php
@@ -86,4 +86,4 @@ if (Configure::read('debug') < 1) {

 require_once CAKE . 'TestSuite' . DS . 'CakeTestSuiteDispatcher.php';

-CakeTestSuiteDispatcher::run();
+App::load('CakeTestSuiteCommand');
现在我只需要将
grunt phpunit
config添加到我的
grunfile.js

phpunit: {
    options: {
        bin: 'phpunit',
        configuration: 'phpunit.xml',
        colors: true,
    },
    app: {
        options: {
            testsuite: 'AllTests',
        },
    },
}

现在,如果我运行
grunt phpunit
,(或者配置
grunt watch
在发生更改时运行
phpunit
任务,并更改文件),phpunit将运行我的测试。

您需要发布准确的CakePHP版本。2和3不一样,你说得对,对不起。我是说现在的马厩。我现在编辑我的问题。谢谢你的回答。我很失望,因为FuelPHP也使用自己的测试用例,但是它有一个
bootstrap\u phpunit.php
来处理这个问题。我相信CakePHP也有类似的东西,但如果我找不到,我就接受你的答案。
phpunit: {
    options: {
        bin: 'phpunit',
        configuration: 'phpunit.xml',
        colors: true,
    },
    app: {
        options: {
            testsuite: 'AllTests',
        },
    },
}