1
我想爲我的Angular項目使用Travis CI。我已經建立了一個通過本地的單元測試,但是我在Travis CI中失敗了。業績測試在本地通過,但與特拉維斯CI在角落失敗
我不確定是否遺漏了我在本地獲得的任何Travis組件。由於在Heroku中的部署,我需要使用一些安裝了使用涼亭的組件。不過,我正在調用特拉維斯的bower安裝,以便在測試時可以使用這些組件。
我已經研究過這個問題,但在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/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
[email protected]/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:322:11
[email protected]/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:4591:5
[email protected]/home/travis/build/tigretoncio/I-know-what-you-will-do-this-summer/app/bower_components/angular/angular.js:4513:7
[email protected]/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! [email protected] test-single: `karma start test/karma.conf.js --single-run`
npm ERR! Exit status 1
謝謝!事實上,在bower.json中添加角度路由作爲依賴關係使得構建在Travis中傳遞 – Sergioet