使用angularjs,requirejs和karma编写脚本时出错

Nir*_*Nir 5 requirejs angularjs karma-runner

每次我尝试将angularjs加载到测试文件时,我都会收到脚本错误.

当我尝试将angularjs放入requirejs define块时,我收到一个错误.

业力骗局:

    module.exports = function (config) {
    config.set({
    basePath: '',

    frameworks: ['jasmine', 'requirejs'],
        files: [
        {pattern: 'C:/workspaces/trunk/pearl/client/components/angular/angular.js', included: false},
        {pattern: '../components/angular-mocks/angular-mocks.js', included: false},
        {pattern: '**/*Spec.js', included: false},
            'test-main.js'
        ],

        reporters: ['progress'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_DEBUG,
        autoWatch: false,
        browsers: ['PhantomJS'],
        captureTimeout: 60000,
        singleRun: true
    });
};
Run Code Online (Sandbox Code Playgroud)

测试conf:

var tests = [];
for (var file in window.__karma__.files) {
    if (window.__karma__.files.hasOwnProperty(file)) {
        if (/Spec\.js$/.test(file)) {
            tests.push(file);
        }
    }
}

requirejs.config({

    paths: {
        'angular': '../components/angular/angular',
        'angular-mocks': '../components/angular-mocks/angular-mocks'
    },

    shim: {
        'angular': {exports: 'angular'},
        'angular-mocks': {
            deps: ['angular']
        }
    },

    // ask Require.js to load these files (all our tests)
    deps: tests,

    // start test run, once Require.js is done
    callback: window.__karma__.start
});
Run Code Online (Sandbox Code Playgroud)

测试文件:

define(['angular'], function () {

    describe('example test', function () {
        it('should pass the test', function () {
            expect(true).toBe(true);
        })
    });

});
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,我收到此错误消息:

PhantomJS 1.9.1 (Windows 7): Executed 0 of 0 SUCCESS (0 secs / 0 secs)
PhantomJS 1.9.1 (Windows 7) ERROR
Error: Script error for: angular
http://requirejs.org/docs/errors.html#scripterror
at C:/workspaces/trunk/pearl/client/node_modules/karma-requirejs/lib/require.js:138
PhantomJS 1.9.1 (Windows 7): Executed 0 of 0 ERROR (0.06 secs / 0 secs)
Run Code Online (Sandbox Code Playgroud)

加载所有文件,如下所示:

C:\workspaces\trunk\pearl\client\example>grunt test
Running "karma:unit" (karma) task
DEBUG [plugin]: Loading karma-* from C:\workspaces\trunk\pearl\client\node_modules
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-chrome-launcher.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-coffee-preprocessor.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-firefox-launcher.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-html2js-preprocessor.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-jasmine.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-phantomjs-launcher.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-requirejs.
DEBUG [plugin]: Loading plugin C:\workspaces\trunk\pearl\client\node_modules/karma-script-launcher.
DEBUG [plugin]: Loading inlined plugin (defining ).
INFO [karma]: Karma v0.10.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
DEBUG [launcher]: Creating temp dir at C:\Users\nirk\AppData\Local\Temp\karma-30300678
DEBUG [launcher]: C:\Program Files (x86)\phantomjs\phantomjs.exe C:\Users\nirk\AppData\Local\Temp\karma-30300678/capture.js
DEBUG [watcher]: Resolved files:
        C:/workspaces/trunk/pearl/client/node_modules/karma-requirejs/lib/require.js
        C:/workspaces/trunk/pearl/client/node_modules/karma-requirejs/lib/adapter.js
        C:/workspaces/trunk/pearl/client/node_modules/karma-jasmine/lib/jasmine.js
        C:/workspaces/trunk/pearl/client/node_modules/karma-jasmine/lib/adapter.js
        C:/workspaces/trunk/pearl/client/components/angular/angular.js
        C:/workspaces/trunk/pearl/client/example/welcomeScreen/welcomScreenSpec.js
        C:/workspaces/trunk/pearl/client/example/test-main.js
Run Code Online (Sandbox Code Playgroud)

为什么angularjs显示错误?