2014-11-17 300 views
5

我使用了jasmine 1.2.0,它工作完美。現在我使用相同的代碼一切都是一樣的,唯一的區別是我轉移到茉莉花2.0.1,現在它不工作...所有的測試失敗,我得到的錯誤是:「Uncaught TypeError:無法讀取未定義的屬性'env'「。未捕獲TypeError:無法讀取未定義的屬性'env'

這裏是SpecRunner.html文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Jasmine Spec Runner</title> 

<link rel="stylesheet" href="../app/bower_components/bootstrap/dist/css/bootstrap.css"/> 
<link rel="stylesheet" href="../app/bower_components/font-awsome/css/font-awesome.css"/> 
<link rel="stylesheet" href="../app/bower_components/datetimepicker/jquery.datetimepicker.css"/> 
<link rel="stylesheet" href="../app/css/style.css"/> 
<link rel="stylesheet" href="../app/bower_components/bootstrap-multiselect/dist/css/bootstrap-multiselect.css"/> 
<link rel="stylesheet" href="../app/bower_components/bootstrap-select/dist/css/bootstrap-select.css"/> 
<script type="text/javascript" src="../app/bower_components/jquery/dist/jquery.js"></script> 
<script type="text/javascript" src="../app/bower_components/underscore/underscore.js"></script> 
<script type="text/javascript" src="../app/bower_components/backbone/backbone.js"></script> 
<script type="text/javascript" src="../app/bower_components/bootstrap/dist/js/bootstrap.js"></script> 
<script type="text/javascript" src="../app/bower_components/moment/moment.js"></script> 
<script type="text/javascript" src="../app/bower_components/handlebars/handlebars.js"></script> 
<script type="text/javascript" src="../app/bower_components/datetimepicker/jquery.datetimepicker.js"></script> 
<script type="text/javascript" src="../app/bower_components/backbone-tastypie/backbone_tastypie/static/js/backbone-tastypie.js"></script> 
<script type="text/javascript" src="../app/bower_components/bootstrap-multiselect/dist/js/bootstrap-multiselect.js"></script> 
<script type="text/javascript" src="../app/bower_components/bootstrap-select/dist/js/bootstrap-select.js"></script> 
<script type="text/javascript" src="../app/bower_components/backbone.localstorage/backbone.localStorage.js"></script> 

<link rel="shortcut icon" type="image/png" href="jasmine-2.0.1/jasmine_favicon.png"> 
<link rel="stylesheet" type="text/css" href="jasmine-2.0.1/jasmine.css"> 
<script type="text/javascript" src="jasmine-2.0.1/jasmine.js"></script> 
<script type="text/javascript" src="jasmine-2.0.1/jasmine-html.js"></script> 
<script type="text/javascript" src="jasmine-2.0.1/boot.js"></script> 
<script type="text/javascript" src="sinon.js"></script> 


. 
. 
. 


<!-- include spec files here... --> 
. 
. 
. 

<script type="text/javascript"> 
    (function() { 
     var jasmineEnv = jasmine.getEnv(); 
     jasmineEnv.updateInterval = 1000; 

     var htmlReporter = new jasmine.HtmlReporter(); 
     var oldResult = htmlReporter.reportRunnerResults; 

     jasmineEnv.addReporter(htmlReporter); 

     /* this is just for our automated tests */ 
     window.jasmine_phantom_reporter = new jasmine.ConsoleReporter; 

     jasmineEnv.addReporter(jasmine_phantom_reporter); 
     /* */ 

     jasmineEnv.specFilter = function (spec) { 
      return htmlReporter.specFilter(spec); 
     }; 

     var currentWindowOnload = window.onload; 
     window.onload = function() { 
      if (currentWindowOnload) { 
       currentWindowOnload(); 
      } 
      execJasmine(); 


     }; 

     function execJasmine() { 
      jasmineEnv.execute(); 
     } 

    })(); 
</script> 

</head> 

<body> 


</body> 
</html> 

誰能告訴我什麼是錯??? Tnxs :) ...

+0

您應該爲其失敗的基本測試添加代碼,並且僅添加測試失敗時的必要依賴項,而不是所有版本都沒有版本 –

回答

1

我會確保您所包含的sinon.js將支持茉莉花2.0,因爲茉莉花如何與2.0版本配合使用會發生重大變化。此外,請查看upgrade guide以幫助將現有規格轉換爲2.0。

在另一個說明中,從2.0開始,boot.js文件應該完成內聯腳本塊中的所有工作,以便不再需要這些工作。

0

茉莉花版本2似乎使用boot.js文件加載設置並啓動茉莉花。您也可以在您的內聯腳本中指定此設置。嘗試刪除內聯腳本,並允許茉莉花通過您已包含的腳本包含的boot.js加載。

相關問題