我正在尝试使用GitLab CI来运行使用QUnit编写的一些客户端单元测试。现在运行Qunit测试我正在使用grunt-contrib-qunit插件。要在无头模式下运行这些测试,我使用此插件将其托管在控制台中的localhost服务器上并运行所有单元测试。当我在本地运行这个项目时,我成功地能够运行所有的单元测试,但是当我在我的代码中检查CI进程的哪些内容时,在GitLab上,它启动了phantomjs服务器失败并给出了超时错误。我还提供了两个文本文件的jsbin链接,它们基本上是我的控制台中单元测试的输出。一个文件属于我的本地系统,另一个来自GitLab CI,当我签入我的代码时,它在GitLab网站上运行。
Local Console Output File Dump
添加我的gitlab-ci.yaml文件
image: node:4.2.2
before_script:
- dir
- cd sapui5_repo
- dir
- cd app-with-tests
build:
stage: build
script:
- npm i
- npm run test
cache:
policy: push
paths:
- node_modules
artifacts:
paths:
- built
如果有帮助,还要添加我的grunt文件
/* global module */
module.exports = function (grunt) {
grunt.initConfig({
qunit: {
all: {
options: {
timeout: 9000,
urls: [
"http://localhost:9000/webcontent/test/unit/unitTests.qunit.html"
]
}
},
//all: ["webcontent/test/unit/unitTests.qunit.html"],
options: {
timeout: 2000,
}
},
connect: {
options: {
//open: true,
},
first: {
options: {
port: 9000,
//livereload: 3500,
base: "./"
}
},
second: {
options: {
open: {
target: "http://localhost:9000/webcontent"
},
keepalive: true,
port: 9000,
livereload: 3501,
base: "./",
}
}
},
});
grunt.loadNpmTasks("grunt-contrib-connect");
grunt.loadNpmTasks("grunt-contrib-qunit");
grunt.registerTask("test", [
"connect:first", "qunit"
]);
grunt.registerTask("default", [
"connect:second"
]);
};