Page 247 - AngularJS权威教程
P. 247
19.7 配置选项 227
// _ 引用underscore 19
});
有关如何设置测试的更多信息,参见RequireJS。
20
3. 浏览器捕获
Karma生成器会询问要自动启动哪个浏览器来捕获测试结果。终止测试运行器时,Karma也
21
会把这些浏览器关掉。我们也可以用浏览器打开Karma Web服务器监听的URL(默认为
http://localhost:9876 )来测试,如果要从本地网络的另一台机器(或者虚拟机)的IE来测试的话,
这一点值得牢记。 22
要使用Karma来启动和运行,每个浏览器都需要安装额外的插件。我们可以使用npm来安装
这些插件。例如,为了让Karma控制Chrome,我们就要安装Chrome启动插件。 23
$ npm install --save-dev karma-chrome-launcher
24
如果要使用Safari,就要安装Safari启动插件,对于Firefox,就要安装Firefox启动插件,其他
类同。
25
browsers: ['Chrome', 'Safari'],
4. 源文件和测试文件 26
Karma生成器会询问JavaScript源文件和测试文件存放在哪里,这个数组可以包含简单的字符
串和对象。 27
字符串可以是模式(例如app/js/**/*.js),或者文件地址(例如app/js/main.js),这些文件和模
式都是相对于basePath的。 28
我们也可以用一个对象(而不是字符串)来指定文件,要配置一个给定的文件路径或者模式
的某些方面时,这是比较有用的,在下面的例子里,这个对象告诉Karma监控文件public/js/ 29
watch-me.js的变更,但不在页面上包含它,也不把它提供成URL:
{ 30
pattern: 'public/js/watch-me.js',
watched: true,
included: false, 31
served: false
}
注意,使用对象的原因是要对文件或者文件模式提供细粒度的控制。因此,pattern属性是 32
必须的。其他属性,比如included,是有默认值的,所以只有当模式偏离常态的时候才需要设置。
我们来讨论一下每个选项和它们默认值的细节。 33
pattern 模式是一个正则表达式,匹配测试文件,这个选项可以是单个文件,也可以是文件
的一种模式,它们符合前面列出的字符串的特征。 34
watched 如果Karma设置成使用autoWatch,这个布尔值用于指定文件是否会被监控。如
果它被列为true,Karma会在这个文件被修改时运行测试。如果设置成false,这些测试就不 35
会运行。
如果watched没有列在配置对象的属性中,这个对象列出的文件默认会被监控(true)。 36