我正試圖學習這個自動化的單元測試malarkey。我想使用Grunt自動運行我的Mocha測試,並將測試結果輸出到文件。據我所知,我需要爲此使用grunt-mocha-cov。我有點工作:當測試通過Grunt寫出結果文件確定。但是,當其中一個失敗我得到這個:Grunt運行摩卡 - 在測試失敗時中止
Running "mochacov:all" (mochacov) task
Warning: Use --force to continue.
Aborted due to warnings.
並沒有文件創建。誰能告訴我我要去哪裏?
我的項目的組織是這樣的:
我的測試文件夾中包含一個文件,test.js,它看起來像這樣:
var chai = require("chai"),
assert = chai.assert,
expect = chai.expect;
var foobar = {
sayHello: function() {
return 'Hello World!';
}
}
describe('Foobar', function() {
describe('#sayHello()', function() {
it('should work with assert', function() {
assert.equal(foobar.sayHello(), 'Hello World!');
});
it('should work with expect', function() {
expect(foobar.sayHello()).to.equal('Hello Worlxd!');
});
});
});
的package.json有這樣的:
{
"name": "GruntTest",
"version": "0.0.1",
"private": true,
"devDependencies": {
"grunt": "~0.4.1",
"grunt-mocha-cli": "~1.3.0",
"grunt-contrib-qunit": "~0.3.0",
"grunt-contrib-jshint": "~0.6.4",
"grunt-mocha": "~0.4.1",
"should": "~2.0.1",
"chai": "~1.8.1",
"grunt-mocha-cov": "0.0.7"
},
"description": "Grunt Test",
"main": "grunt.js",
"dependencies": {
"grunt": "~0.4.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "BSD"
}
這裏是我的Gruntfile.js:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
mochacov: {
options: {
reporter: 'XUnit',
require: ['should'],
output: 'test-results.xml',
bail: false
},
all: ['test/*.js']
}
});
grunt.loadNpmTasks('grunt-mocha-cov');
grunt.registerTask('default', ['mochacov']);
};
編輯
繼Xavier的意見,我得到了它與mochacov和的xUnit文件記者的工作。這是我的新的改進Gruntfile,萬一有用的給其他人:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
mochacov: {
options: {
reporter: 'xunit-file',
require: ['should'],
bail: false
},
all: ['test/*.js']
}
});
grunt.loadNpmTasks('grunt-mocha-cov');
grunt.registerTask('default', ['mochacov']);
};
終端給予警告「已中止因警告」,但mochacov創建一個帶有測試結果的文件xunit.xml。
謝謝xavier - grunt-simple-mocha只是輸出到控制檯,我無法讓xunit文件工作。我會繼續嘗試。 –
上次我在服務器端使用grunt,它是這樣的:https://github.com/xseignard/rss-unify/tree/a560641050a3e8e06bb040220e53feff83a1003d/server看一看 –
謝謝Xavier,我得到它與mochacov合作! –