在没有Cake控制台的情况下,如何使用CakePHP测试运行PHPUnit?
我想用Grunt自动化CakePHP测试,并找到在没有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.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',
},
},
}