2013-10-16 47 views
1

我学会了如何使用Yeoman创建我的Backbone应用程序的Jasmine测试。但是,我在json文件中有我的测试数据。我想使用模型提取来加载JSON,但是当我由于错误的URI错误而在本地打开文件时,它不起作用。我该如何在grunt服务器上运行Yeoman生成的Jasmine specrunner?

我想知道如何将生成的spec runner加载到grunt服务器中,以便请求能够正常工作?

另一个问题是,当测试实际在PhantomJS中运行时,它是在本地主机上运行,​​还是只是像打开文件系统上的文件一样打开?

你们通常如何编写测试?我一直在写一些测试代码,然后运行grunt测试。如果测试失败,我在Firefox中打开_Specrunner.html并检查。这是非常乏味的,我觉得必须有更好的方法来做到这一点。

回答

1

你的问题实际上更像三个,但我可以回答第三个问题。我一直在做的是使用testem这非常有用;只需让Chrome访问一个不断在后台运行测试的URL,以确保一切正常。如果没有,CLI会通知您(或标题栏中的计数器)来修复损坏的代码。

我testem.yml的配置是这样的:

framework: jasmine 
test_page: lib/testRunner.html 

然后,我坚持我的specrunner,这样我就没有我想要测试的东西,每次来重建一个新的:

<!doctype html> 
<html> 

    <head> 
     <title>Test'em</title> 
     <script src="vendor/jquery/jquery.min.js"></script> 
     <script src="/testem/jasmine.js"></script> 
     <script src="vendor/jasmine-jquery/lib/jasmine-jquery.js"></script> 
     <script src="/testem.js"></script> 
     <script src="/testem/jasmine-html.js"></script> 
     <link rel="stylesheet" href="/testem/jasmine.css"> 
    </head> 

    <body> 
     <div id="jasmine_content"></div> 
     <script src="vendor/requirejs/require.js"></script> 
     <script> 
     // require config stripped out for brevity 
     require(['specs'], function() { 
      var jasmineEnv = jasmine.getEnv(); 
      jasmineEnv.addReporter(new jasmine.HtmlReporter); 
      jasmineEnv.execute(); 
     }); 


     </script> 
    </body> 

</html> 

我一直在使用它来测试使用RequireJS编写在Backbone中的应用程序,测试运行器非常强大。我建议你放弃它。

相关问题