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
   246   247   248   249   250   251   252   253   254   255   256