【发布时间】:2017-05-05 19:38:58
【问题描述】:
我有一个使用 angular-cli 1.0 生成的 angular 4.0 项目。
我有全局变量,例如 api 端点,它们在 octopus deploy 的部署过程中根据环境进行交换。
global-tokens.js
var apis = {
foo: 'http://foobar.foo'
}
这在本地以及在上层环境中的行为与预期的一样。但在运行单元测试时不会。
我尝试在 tsconfig.spec.json 以及 "assets" 和 "scripts"in .angular.cli.json 的 "files" 节点中包含全局令牌 js 。
当我运行 ng test 时,我得到了
Uncaught ReferenceError: apis is not defined
经过进一步检查,我调试测试时 index.html 中不包含 global-tokens.js。
关于如何将该文件放入我的环境中的任何想法?
编辑:添加脚本尝试
【问题讨论】:
-
首先,为什么不在 Angular cli 中使用内置的 it 环境选项?如果不需要,那些是 e2e 测试还是 ui 测试?你试过通过
.angular-cli.josnscript添加这个文件吗(就像你想要一个外部库一样)? -
根据您的 cmets 编辑。就标记化哪个文件而言,我几乎无法控制章鱼进程。
-
您总是可以在抛出 Uncaught ReferenceError: apis is not defined 的测试用例中执行
require("path/to/global-tokens.js")。这将在您的测试中内联 global-tokens.js,并且 var 变为可用。 -
在规范中添加 require 似乎并不能解决被测文件中引用的问题。我继续收到同样的错误。
标签: angular typescript global-variables karma-jasmine angular-cli