testing - E2E 测试远程 AngularJS 应用程序

标签 testing angularjs cross-domain karma-runner end-to-end

我正在尝试使用 Karma Test Runner 实现对现有 AngularJS 应用程序的端到端测试。我的申请位于 host1.internal我在 host2.internal .所以在我的 karma 配置文件中我有:

proxies = {
  '/': 'http://host1.internal/',
};

登录前显示不同的<div>index.html 里面的, 但在登录后它会隐藏所有可见的 div 之前 ng-hide='loggedIn' .问题是正在为 <div ng-view> 获取部分 View 文件使用 AngularJS 这样的路由配置:

$routeProvider.
  when('/', {
    controller: overviewController,
    templateUrl: 'views/overview.html',
    // templateUrl: 'http://host2.internal/views/overview.html',
    title_prefix: 'Home'
  }).
 etc. etc. etc.

我在浏览器的控制台中收到这些错误:

GET http://localhost:9876/views/homepage.html 404 (Not Found)

正如您在路由配置代码片段中所见,我尝试获取具有完整 URL 的模板,但不幸的是,请求并不简单 GET ,它是 OPTIONS (我不确定为什么?)而且我收到有关旧的 Access-Control-Allow-Origin header 的错误。

如何在 Karma 配置中正确配置代理,以便我可以获取这些静态文件?或者任何其他解决方案?

谢谢!

最佳答案

我已经找到解决这个问题的方法,我已经使用了 $templateCache。这样一来,所有 html 文件都与我的 index.html 上的所有其余脚本一起加载到一个 .js 文件中。

如果你像我一样使用 Grunt,请查看 grunt-html2js .

干杯!

关于testing - E2E 测试远程 AngularJS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341070/

相关文章:

testing - 重置 FB Like 按钮

angularjs - 将 $scope 变量分配给带有计数的 ng-model

ruby-on-rails - 设计 AJAX - POST 请求 : current_user is null

java - 如何在不发送另一个身份验证请求的情况下保持来自跨源(CORS)Spring security的登录 session

java - 寻找一本涵盖单元、功能、集成和场景测试的综合 Java 测试书籍

Linux命令的Python功能测试

.net - 使用 NUnit 测试私有(private)方法和内部类?

angularjs - 智能表分页不适用于服务器端过滤

javascript - JavaScript 和 AngularJS 中的正则表达式与 ng-change 不匹配

javascript - 跟踪一个 Google Analytics 帐户下的多个域名