2013-08-24 169 views
10

当我运行grunt服务器时,我的文件编辑被拾取,浏览器通过livereload刷新。 当我运行grunt测试时,它运行一次并关闭。如何让Yeoman持续运行测试

这种行为可以通过运行

yo angular --minsafe mytest 
grunt test 

当我改变karma.unit.singlerun在Gruntfile = false来模拟,咕噜测试现在说一个观察者正在运行,但没有文件变化似乎触发运行再次测试。

如何通过类似于linemanjs的测试方式获得重新加载功能?

回答

16

你快到了!您可以在Gruntfile中设置一个名为autoWatch的附加选项,该选项监视您的karma.conf.js中指定的文件以进行更改。在Gruntfile一个完整的条目看起来是这样的:

karma: { 
    unit: { 
    configFile: 'karma.conf.js', 
    singleRun: true, 
    autoWatch: false 
    }, 
    server: { 
    configFile: 'karma.conf.js', 
    singleRun: false, 
    autoWatch: true 
    } 
} 
+0

太棒了!效果很好。我不明白任务的背景。 –

+0

这很容易弄错,因为业务整合目前有点不成熟。因为业力和咕噜具有不同的观察机制,所以他们目前的工作并不像他们应该的那样好。 – passy

+2

如何让它运行“服务器”配置而不是“单元”配置? – Luke

0

我的设置如下

karma: { 
     unit: { 
     configFile: 'karma.conf.js', 
     singleRun: false, 
     autoWatch: true 
     } 
    } 

按理说,但不能重新运行单元测试时,我更改的文件,咕噜因缘:单元输出

PhantomJS 1.9.7 (Linux) Controller: MainCtrl should attach a list of awesomeThings to the scope FAILED 
     Expected 3 to be 100. 
PhantomJS 1.9.7 (Linux): Executed 1 of 1 (1 FAILED) ERROR (0.04 secs/0.014 secs) 

发现它:我在虚拟机中使用共享文件夹,并在虚拟机之外改变它,以便autoWatch无法识别这些更改。