2012-09-24 31 views
1

我們正在編寫一個基於Backbone.js的應用程序,並嘗試使用我們的摩卡測試與我們詹金斯 持續集成服務器運行時掛。Backbonejs運行摩卡測試(記者HTML)從comandline

到目前爲止,我可以運行測試使用像Testemmocha-phantomjs。測試運行,但他們從不發出退出代碼,因此腳本永遠不會返回到命令行提示符。這正是腳本所應該做的,所以我猜測我們如何設置我們的Mocha測試庫有些問題。我自己沒有發現問題。

有任何其他人運行到這一問題,並至少找到了一個解決方法。

任何想法?

我們的test.html

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Dashboard Mocha Tests</title> 
    <link rel="stylesheet" href="css/mocha.css" /> 

    <script src="js/vendor/require.js" type="text/javascript"></script> 
    <script> 
    requirejs.config({ 
     baseUrl: 'js/', 
     paths: { 
     jquery  : 'vendor/jquery.min', 
     underscore : 'vendor/underscore', 
     backbone  : 'vendor/backbone', 
     handlebars : 'vendor/handlebars', 
     text   : 'vendor/require-text', 
     json   : 'vendor/require-json', 
     chaplin  : 'vendor/chaplin', 
     mocha   : 'vendor/mocha', 
     chai   : 'vendor/chai', 
     sinon   : 'vendor/sinon', 
     moment  : 'vendor/moment' 
     }, 
     shim: { 
     backbone: { 
      deps  : ['underscore', 'jquery'], 
      exports  : 'Backbone' 
     }, 
     underscore: { 
      exports  : '_' 
     } 
     } 
    }); 

    if (location.hash === '#testem') 
    document.write('<script src="/testem.js"></'+'script>') 
</script> 
</head> 
<body> 
    <div id="mocha"></div> 
    <script type="text/javascript"> 
    require(['require', 'vendor/chai', 'vendor/mocha', 'vendor/sinon'], function(require, chai) { 

     assert = chai.assert; 
     expect = chai.expect; 
     should = chai.should(); 

     mocha.setup({ 
     ui: 'bdd', 
     }); 
     var specs = [ 
     'test/lib/utils', 
     'test/models/campaigns', 
     'test/models/campaign', 
     'test/views/input/input', 
     'test/views/input/text', 
     'test/views/input/textarea', 
     'test/views/input/checkbox', 
     'test/views/input/email', 
     'test/views/input/password', 
     'test/views/input/button', 
     'test/views/input/submit_button', 
     'test/views/input/reset_button', 
     'test/views/input/number', 
     'test/views/input/date_time', 
     'test/views/input/date' 
     ]; 
     require(specs, function() { 
     mocha.run() 
     }) 
    }) 
    </script> 

</body> 
</html> 

下面是我們的測試看看人們如何的一個例子。

(function() { 

    define(['views/forms/textarea'], function(Textarea) { 
    'use strict'; 
    return describe('Textarea', function() { 
     var field; 
     field = new Textarea; 
     describe('defaults', function() { 
     it('is enabled by default', function() { 
      return assert.isTrue(field.isEnabled()); 
     }); 
     return it('contains one textarea field', function() { 
      return assert.lengthOf($(field.el).find('textarea'), 1); 
     }); 
     }); 
     return describe('value', function() { 
     return it('can have set and get a value', function() { 
      field.setValue('my super value'); 
      return assert.equal('my super value', field.getValue()); 
     }); 
     }); 
    }); 
    }); 

}).call(this); 

任何幫助將不勝感激。提前致謝。

回答

0

你嘗過ci模式下運行testem?我運行這樣的:

% testem ci --launch PhantomJS 

只要確保該phantomjs可執行文件在您的路徑,一切都很好。