2014-03-29 3 views
1

저는 AngularJS 앱을 만들고 있습니다. 나는 그것에 대한 테스트를하고있다. 불행히도, 나는 그것이 작동하도록 할 수 없습니다. 콘솔 창에 "Uncaught ReferenceError : env is not defined"라는 오류 메시지가 나타납니다. AngularJS with Jasmine에 테스트를 실행하는 코드를 복사했습니다. 내가 볼 수있는 유일한 차이점은 CDN을 참조한다는 것입니다. 아래에 코드가 게시 된 jsfiddle here이 있습니다.Jasmine env가 정의되지 않았습니다.

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>My Test Results</title> 

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/jasmine.js"></script> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/jasmine-html.js"></script> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/boot.js"></script> 

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular-mocks.js"></script> 
    <script type="text/javascript" src="res/js/angular-scenario.js"></script> 

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/jasmine.css" /> 

    <!-- Load the Test Files--> 
    <script type="text/javascript" src="e2e/tests.e2e.js"></script> 
</head> 
<body> 
    <a href="#" onclick="env.execute()">run tests</a> 

</body> 
</html> 

내 tests.e2e.js 파일의 내용은 피들에 있습니다. 참고로이 코드는 아래에 게시됩니다.

'use strict'; 

describe('MyApp', function() { 
    describe('MyPage', function() { 
     it('should test', function() { 
      expect(true).toBe(false); 
     }); 
    }); 
}); 

내가 뭘 잘못하고 있니?

답변

0

PLUNKER을 사용하여 테스트하는 방법입니다. 예상대로 작동합니다.

재스민은 페이지로드시 실행됩니다.

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

     var htmlReporter = new jasmine.HtmlReporter(); 

     jasmineEnv.addReporter(htmlReporter); 

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

     var currentWindowOnload = window.onload; 

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

     function execJasmine() { 
     jasmineEnv.execute(); 
     } 
    })(); 
    </script> 

이 정보가 도움이되기를 바랍니다.

관련 문제