2013-09-29 18 views
1

我试图按照这个blog关于在ASP.NET MVC应用程序的单独程序集中使用requirejs和jasmine。如何解决RequireJS和Jasmine的“脚本错误”?

这是我SpecRunner.html:

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

    <script type="text/javascript" src="../Beryllium.Web/Scripts/require.js"></script> 

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

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

    <script type="text/javascript"> 
     require.config({ 
      baseUrl: '../Beryllium.Web/App/ViewModels', 
      paths: { 
       spec: '../../Beryllium.Web.UnitTests/spec' 
      } 
     }) 
    </script> 

    <script type="text/javascript"> 
     require(['spec/PlayerSpec', 'spec/SpecHelper'], 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> 

Beryllium.Web是MVC应用程序和Beryllium.Web.UnitTests是我的测试组件。

正如我加载SpecRunner文件,我有我的网页上2个错误:

GET file:///D:/code/Beryllium/Beryllium.Web/Beryllium.Web.UnitTests/spec/PlayerSpec.js require.js:1880 
Uncaught Error: Script error for: spec/PlayerSpec 
http://requirejs.org/docs/errors.html#scripterror 

而对于SpecHelper.js同样的错误

我PlayerSpec.js开始是这样的:

define(['Player', 'Song'], function(Player, Song) { 
    describe("Player", function() { 
     var player; 
     var song; 

     beforeEach(function() { 
      player = new Player(); 
      song = new Song(); 
     }); 

有没有办法找出究竟是什么导致了这个错误?当我加载SpecRunner文件时,页面是空白的,我只打开控制台看到这个错误。

回答

4

我的部分愚蠢的错误。在我的需要配置部分,我有'../../Beryllium.Web.UnitTests'但这是不够的目录,所以它正在寻找文件的错误路径。