Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing E2E测试远程AngularJS应用程序_Testing_Angularjs_Cross Domain_Karma Runner_End To End - Fatal编程技术网

Testing E2E测试远程AngularJS应用程序

Testing E2E测试远程AngularJS应用程序,testing,angularjs,cross-domain,karma-runner,end-to-end,Testing,Angularjs,Cross Domain,Karma Runner,End To End,我正试图用Karma Test Runner实现对现有AngularJS应用程序的E2E测试。我的应用程序位于host1.internal上,我位于host2.internal上。因此,在我的karma配置文件中,我有: proxies = { '/': 'http://host1.internal/', }; 登录前,它会显示index.html中的不同,但登录后,它会使用ng hide='loggedIn'隐藏所有可见的div之前的内容。问题是,正在使用AngularJS路由配置为获取

我正试图用Karma Test Runner实现对现有AngularJS应用程序的E2E测试。我的应用程序位于
host1.internal
上,我位于
host2.internal
上。因此,在我的karma配置文件中,我有:

proxies = {
  '/': 'http://host1.internal/',
};
登录前,它会显示
index.html
中的不同
,但登录后,它会使用
ng hide='loggedIn'
隐藏所有可见的div之前的内容。问题是,正在使用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)
正如您在routing config代码片段中所看到的,我尝试获取带有完整URL的模板,但不幸的是,请求不是简单的
GET
,而是
OPTIONS
(我不确定为什么?)

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


谢谢

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

如果你像我一样使用咕噜,看看


干杯

当您启动karma时,是否会看到一条关于urlRoot的警告消息?
[WARN]config-urlRoot被规范化为“/e2e/”
,但这是因为我在karma配置文件中已将urlRoot设置为该名称。如果没有urlRoot,它甚至无法加载我的应用程序首页。