2013-10-17 39 views
2

我一直在Grunt開始很有趣,但遇到了一種情況,我不知道最佳的行動方案是。Grunt-contrib-jasmine在沒有spec文件或spec文件爲空時中止任務

TL;博士

能咕嚕拋出一個警告,而不終止的任務? grunt --force會做到這一點,但是它將force選項應用於所有任務。

問題:上運行,其包括茉莉(從咕嚕-的contrib-茉莉)的任務時,如果它不能找到一個規範與在它的至少一個單元測試(即it("does stuff, function() {});),那麼它會引發警告,因此中止整個任務。

代碼

下面是我用建立我的網站任務:

grunt.registerTask('build', ['clean', 'sass', 'images', 'favicons', 'lint', 'minify', 'jasmine', 'hashify']); 

,這裏是茉莉任務配置:

jasmine: { 
     testdev: { 
      src: folders.js.src + '/**/*.js', 
      options: { 
       'specs': folders.spec.src + '/*Spec.js', 
       'helpers': folders.spec.src + '/*Helper.js' 
      } 
     }, 
     //etc etc, more targets for minified code testing and istanbul coverage 
} 

是否有任何這些明智的解決方案?

選項1)我可以使用grunt --force但不願意,因爲它會影響其他進程,我可能會真正地使任務失敗。

選項2)警告但不要失敗。 Grunt有沒有中止任務的STDOUT警告?

選項3)我可以派生插件,並添加選項'強制'只是茉莉花任務,所以它繼續,但仍將其警告記錄到控制檯。

選項4)如果在運行茉莉花之前未找到一個,則Grunt會創建一個空虛擬規格。這對我來說似乎有點笨拙。

可能有一個更好的解決方案,我還沒有想到。

在此先感謝。

回答

0

看看Testem。 I answered this in another unit testing question,但它的好處在於它就像您的測試watch任務;更新你的代碼,它運行,出現問題,它將它記錄在控制檯上(並通過你運行的瀏覽器)。

另外,因爲它使用瀏覽器來運行測試,所以您可以在項目代碼旁邊有一個選項卡,它將顯示通過/失敗的測試計數。即Testem (60/60)

https://github.com/airportyh/testem

如果你想和運行這個作爲構建過程的一部分,there's grunt-testem。在運行此任務之前,請小心您退出testem runner,否則將失敗。希望這可以幫助。 :-)

相關問題