2013-10-16 51 views
1

我學會了如何使用Yeoman創建我的Backbone應用程序的Jasmine測試。但是,我在json文件中有我的測試數據。我想使用模型提取來加載JSON,但是當我由於錯誤的URI錯誤而在本地打開文件時,它不起作用。我該如何在grunt服務器上運行Yeoman生成的Jasmine specrunner?

我想知道如何將生成的spec runner加載到grunt服務器中,以便請求能夠正常工作?

另一個問題是,當測試實際在PhantomJS中運行時,它是在本地主機上運行,​​還是隻是像打開文件系統上的文件一樣打開?

你們通常如何編寫測試?我一直在寫一些測試代碼,然後運行grunt測試。如果測試失敗,我在Firefox中打開_Specrunner.html並檢查。這是非常乏味的,我覺得必須有更好的方法來做到這一點。

回答

1

你的問題實際上更像三個,但我可以回答第三個問題。我一直在做的是使用testem這非常有用;只需讓Chrome訪問一個不斷在後臺運行測試的URL,以確保一切正常。如果沒有,CLI會通知您(或標題欄中的計數器)來修復損壞的代碼。

我testem.yml的配置是這樣的:

framework: jasmine 
test_page: lib/testRunner.html 

然後,我堅持我的specrunner,這樣我就沒有我想要測試的東西,每次來重建一個新的:

<!doctype html> 
<html> 

    <head> 
     <title>Test'em</title> 
     <script src="vendor/jquery/jquery.min.js"></script> 
     <script src="/testem/jasmine.js"></script> 
     <script src="vendor/jasmine-jquery/lib/jasmine-jquery.js"></script> 
     <script src="/testem.js"></script> 
     <script src="/testem/jasmine-html.js"></script> 
     <link rel="stylesheet" href="/testem/jasmine.css"> 
    </head> 

    <body> 
     <div id="jasmine_content"></div> 
     <script src="vendor/requirejs/require.js"></script> 
     <script> 
     // require config stripped out for brevity 
     require(['specs'], function() { 
      var jasmineEnv = jasmine.getEnv(); 
      jasmineEnv.addReporter(new jasmine.HtmlReporter); 
      jasmineEnv.execute(); 
     }); 


     </script> 
    </body> 

</html> 

我一直在使用它來測試使用RequireJS編寫在Backbone中的應用程序,測試運行器非常強大。我建議你放棄它。

相關問題