业力测试在当地传递,但在Angular中使用Travis CI失败

时间:2016-06-11 19:43:22

标签: angularjs json karma-jasmine travis-ci

我正在尝试将Travis CI用于我的Angular项目。我设置了一个在本地通过的单元测试,但我在Travis CI中失败了。

我不确定我是否遗漏了Travis中的任何组件,而我是在本地获得的。由于在Heroku中部署,我需要使用一些安装了使用过的凉亭的组件。但是我在Travis中调用bower install,因此在测试时应该可以使用这些组件。

我已经研究过这个问题,但在SO或其他地方找不到任何类似的问题。

任何帮助表示感谢。

我的 package.json 的依赖关系是:

"dependencies": {
"bower": "^1.7.9",
"express": "^4.13.4",
"http-server": "^0.9.0",
"jasmine-core": "^2.4.1",
"karma": "^0.13.22",
"karma-chrome-launcher": "^1.0.1",
"karma-cli": "^1.0.0",
"karma-jasmine": "^1.0.2",
"protractor": "^3.3.0"
},
"devDependencies": {
"grunt": "^1.0.1",
"grunt-protractor-runner": "^3.2.0",
"grunt-protractor-webdriver": "^0.2.5",
"karma": "^0.13.22",
"karma-firefox-launcher": "^1.0.0",
"karma-jasmine": "^1.0.2"
}

我在bower.json中的依赖关系是:

"dependencies": {
  "angular": "^1.5.5",
  "angular-mocks": "^1.5.5",
  "oauth-signature": "^1.3.1"
}

我的 karma.conf.js 文件如下:

module.exports = function(config){
  config.set({

    basePath: '../',

    files: [
      'app/bower_components/angular/angular.js',
      'app/bower_components/angular-mocks/angular-mocks.js',
      'app/bower_components/angular-route/angular-route.js',
      'app/env.js',
      'app/js/app.js',
      'app/js/**/*.js',
      'test/unit/**/*.js',

    ],

    singleRun: true,

    autoWatch: true,

    frameworks: ['jasmine'],

    browsers: ['Firefox'],

    plugins: [
      'karma-firefox-launcher',
      'karma-jasmine'
    ]
  });
};

在本地传递的测试是:

 describe('resultsFactory', function() {

  beforeEach(module('summerApp'));

  var result;

  beforeEach(inject(function(resultsFactory) {
    result = new resultsFactory('location');
  }));

  it('location is available', function(){
   expect(result.location).toEqual('location');
  });
});

和我的.travis.yml如下:

language: node_js
node_js:
  - "6"
before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
install:
  - npm install
  - bower install
script:
  - npm run test-single
package.json中的

脚本test-single是

  

karma start test / karma.conf.js --single-run

最后,我在Travis CI中得到的错误是:

> karma start test/karma.conf.js --single-run
11 06 2016 18:46:48.521:WARN [watcher]: Pattern "/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular-route/angular-route.js" does not match any file.
11 06 2016 18:46:48.566:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
11 06 2016 18:46:48.572:INFO [launcher]: Starting browser Firefox
11 06 2016 18:46:50.357:INFO [Firefox 31.0.0 (Linux 0.0.0)]: Connected on socket /#ebdoQGJ5-EkK88VnAAAA with id 72213403
Firefox 31.0.0 (Linux 0.0.0): Executed 0 of 1 SUCCESS (0 secs / 0 secs)
Firefox 31.0.0 (Linux 0.0.0) resultsFactory location is available FAILED
minErr/<@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:68:5
loadModules/<@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-  summer/app/bower_components/angular/angular.js:4631:1
forEach@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:322:11
loadModules@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:4591:5
createInjector@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:4513:7
workFn@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular-mocks/angular-mocks.js:3060:9
TypeError: result is undefined in /home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/test/unit/resultsFactory.spec.js (line 12)
@/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/test/unit/resultsFactory.spec.js:12:5
Firefox 31.0.0 (Linux 0.0.0): Executed 1 of 1 (1 FAILED) (0 secs / 0.019 secs)
(1 FAILED) ERROR (0.006 secs / 0.019 secs)
npm ERR! Linux 3.13.0-40-generic
npm ERR! argv "/home/travis/.nvm/versions/node/v6.2.1/bin/node"  "/home/travis/.nvm/versions/node/v6.2.1/bin/npm" "run" "test-single"
npm ERR! node v6.2.1
npm ERR! npm  v3.9.3
npm ERR! code ELIFECYCLE
npm ERR! summer@0.1.0 test-single: `karma start test/karma.conf.js --single-run`
npm ERR! Exit status 1

1 个答案:

答案 0 :(得分:1)

查看错误消息,Travis无法找到角度路由,因为它不包含在bower.json中作为依赖项。