2014-11-17 302 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加载。

相关问题