2014-11-17 28 views
5

Użyłem jaśminu 1.2.0 i działało idealnie. Teraz używam tego samego kodu wszystko to samo, co było, jedyną różnicą jest to, że przeniosłem się do jaśminu 2.0.1 i teraz nie działa ... wszystkie testy zawodzą, a błąd, który otrzymuję, to: "Uncaught TypeError: Nie można odczytać właściwości "env" z undefined ".Uncaught TypeError: Nie można odczytać właściwości 'env' z undefined

Oto plik 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> 

Czy ktoś może mi powiedzieć co jest nie tak ??? Tnxs :) ...

+0

Powinieneś dodać kod podstawowego testu, którego test się nie powiedzie i tylko niezbędne zależności do testu zawiodą, a nie wszystkie bez wersji –

Odpowiedz

1

Upewnię się, że dołączony sinon.js będzie obsługiwał jaśmin 2.0, ponieważ nastąpiły znaczące zmiany w działaniu jaśminu w wersji 2.0. Dodatkowo sprawdź numer upgrade guide, aby pomóc w konwersji istniejących specyfikacji do pracy z wersją 2.0.

W innej notatce, począwszy od wersji 2.0, plik boot.js powinien wykonać całą pracę, którą posiadasz w bloku wbudowanego skryptu, aby nie było to już konieczne.

0

Wersja 2 jaśminu wydaje się używać pliku boot.js do załadowania ustawień i inicjowania jaśminu. Ta konfiguracja jest również określona w skrypcie wbudowanym. Spróbuj usunąć wbudowany skrypt i zezwól na ładowanie jaśminu za pomocą dołączonego boot.js, który już posiadasz w swoim skrypcie.