angular - Karma 无法使用 Angular 2 快速入门配置代理 html

标签 angular karma-runner karma-jasmine

我已经尝试过 Angular 2 QuickStart 并进行了测试。我们确实需要将 html 和 css 分开以适应我们的设计人员,因此使用 templateUrl 等至关重要。但一旦我用 templateUrl 替换 template 并指向 html 文件,测试就开始失败。

Karma 报告“WARN [proxy]:无法代理 base/app/test.html(套接字挂起)”,并且查看网络跟踪,它尚未转换 URL。所有 JS 都被翻译为/base/app,但无论我如何处理文件模式和代理,它都会继续转为/app/test.html 而不是/base/app/test.html。在组件中,templateUrl 设置为“app/test.html”。我也在那里尝试了所有可能的变化。

唯一能让测试通过的是在 karma.conf.js 中为 html 设置 include:true ,并在 templateUrl 中指向/base/app/test.html 。 我的印象是,使用 karma 代理会在翻译所有请求的网址之间做出“某些事情”?

我使用了快速入门存储库中发布和最新提交的文件。

编辑:此问题现已在 Angular/quickstart 项目中得到修复。 :)
https://github.com/angular/quickstart/issues/329#issuecomment-271800205

最佳答案

我现在测试快速入门时遇到了同样的问题。我只需将 karma.conf.js 中的 appAssets 从原来的 base/app/ 更改为 即可修复此问题/base/app/

据我了解,问题是,如果您尝试代理 /app/,这是快速入门的 karma.conf 中使用的内容

var appAssets  = 'base/app/'

proxies: {
  "/app/": appAssets
},

为什么要将其替换为前面没有 / 的路径。这会导致 /app/ 变为 base/app/,当您考虑 URL 的解析方式时,两者是不一样的。

关于angular - Karma 无法使用 Angular 2 快速入门配置代理 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41243183/

相关文章:

javascript - 参数 'controllerLogin' 不是函数,未定义 - AngularJs, karma 测试

javascript - 如何在 Angular 单元测试中创建 ArrayBuffer 变量,Jasmine/Karma

Angular6 Jasmine TypeError : expect(. ..).toBeVisible 不是一个函数

javascript - 我需要一个特定的十进制转换我做不到

ruby-on-rails - 使用 rails/webpacker 响应测试设置

angularjs - 如何使用 jasmine 测试 window.location.href

mocha.js - 如何在 mocha 记者中获取测试的文件名

css - ng bootstrap datepicker 风格泄漏

angular - 将字符串转换为 typescript 中的对象?

angular - 警告 : Can't resolve all parameters for UsersPermissionsService This will become an error in Angular v5. x