情境:我目前正在使用Qunit在TypeScript / Javascript中测试项目,当我在浏览器中运行它们时,一切正常。
问题:我试图使用grunt以无头模式运行QUnit测试(我需要它进行持续集成测试)并且测试不能正常运行。
配置 以下是我目前设置的方式:
Gruntfile.js
package.json
src/
- Ts source files
test/
- config.js
- Test.ts
- Test.js
- test.html
Gruntfile.js
/*global module:false*/
module.exports = function(grunt) {
grunt.initConfig({
connect: {
server: {
options: {
port: 8000,
base: '.'
}
}
},
qunit: {
all: {
options: {
urls: [
'http://localhost:8000/test/test.html'
]
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.registerTask('test', ['connect', 'qunit']);
};
的package.json
{
// Name, version, description, repo and author fields...
"engines": {
"node": ">= 0.10.0"
},
"devDependencies": {
"grunt": "~0.4.5",
"grunt-contrib-watch": "~0.6.1",
"grunt-contrib-connect": "~0.9.0",
"grunt-contrib-qunit": "~0.5.2"
}
}
然后我有一个 .travis.yml 文件来运行所有这些。我不知道它是否真的很重要,因为测试不是在travis或我当地的环境中运行,但不管怎么说都是这样:
language: node_js
node_js:
- "0.11"
- "0.10"
before_install:
- "npm install grunt --save-dev"
- "npm install -g grunt-cli"
install:
- "npm install"
- "npm install -g typescript"
script:
- "tsc --module amd --target ES5 ./src/*.ts"
- "grunt test --verbose --force"
以下是travis构建错误的部分:http://puu.sh/eKpWj/35614680e1.png
(当我在浏览器中运行它们时,我目前有大约20个断言。而且,打字稿编译运行正常。)
编辑:正如有人问过它,这里是Test.html文件的内容:http://pastebin.com/LN3igmjc
编辑2:此处还有 config.js 的内容:
var require = {
baseUrl: "../src/"
};
答案 0 :(得分:0)
实际上我设法让它发挥作用。 我改变了两件事:
tsc --module amd --target ES5 ./src/*.ts
编译了src
文件夹中的文件,测试文件位于test
文件夹中。 我抨击自己这个......
所以我只是在tsc --module amd --target ES5 ./test/*.ts
文件.travis.yml
QUnit.config.autostart = false;
自动启动测试,并在我需要QUnit.start();
时启动测试我将此start()放在Test.js
文件的末尾这样只有在QUnit完成加载时才开始测试。