Page 251 - AngularJS权威教程
P. 251
19.8 使用 RequireJS 231
17. singleRun 19
如果这个布尔值被设置成true,Karma会用所有已配置的浏览器运行这些测试一次;如果它
们都通过了,就会看到一个退出代码0,要是有失败的,就会是1。 20
在持续集成服务器上运行我们的测试时,这个指标特别有用。
18. urlRoot 21
这个URL是Karma运行的根URL。我们可以用urlRoot参数来给Karma使用的一切URL加前
缀。使用代理时,这是个好主意,这样来自我们测试的调用不会和服务器上已有的功能冲突。 22
19.8 使用 RequireJS 23
要在Karma中使用RequireJS,我们在karma.conf.js之后还需要一个额外的配置文件: 24
test-main.js。
karma.conf.js:负责Karma的配置(已经叙述)。 25
test-main.js:负责给测试配置RequireJS。
1. karma.conf.js 26
我们会像平常一样用Karma配置文件生成器来配置karma:
$ karma init test/karma.conf.js 27
当提示使用RequireJS时,选择yes。
28
当生成器询问默认要加载哪个文件时,我们需要选择不用RquireJS加载的所有文件。只包含
test/test-main.js也不会有问题,我们马上就创建它。
29
当我们列出源码和测试文件时,要选择所有要使用Require.js加载的文件。应当把用Require.js
加载的所有文件都列出来,包括所有外部库、所有代码、所有测试文件。
30
我们需要用配置对象来配置这些文件,把它们设置成默认不包含。
这时,我们的karma.conf.js应该是:
31
module.exports = function(config) {
config.set({
basePath: '..', 32
frameworks: ['jasmine', 'requirejs'],
files: [
{pattern: 'app/lib/angular.js', included: false}, 33
{pattern: 'app/lib/angular-route.js', included: false},
{pattern: 'app/lib/angular-mocks.js', included: false},
{pattern: 'app/js/**/*.js', included: false},
{pattern: 'test/**/*.js', included: false} 34
{pattern: 'test/lib/**/*.js', included: false},
'test/test-main.js'
], 35
exclude: [
'js/main.js'
],
reporters: ['progress'], 36