2013-08-24 82 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無法識別這些更改。