この自動化された単体テストのマラーキーを学習しようとしています。Grunt を使用して Mocha テストを自動的に実行し、テスト結果をファイルに出力したいと考えています。私が理解できる限り、これにはgrunt-mocha-covを使用する必要があります。テストに合格すると、Grunt は結果ファイルを書き出します。しかし、そのうちの 1 つが失敗すると、次のようになります。
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-file レポーターで動作するようになりました。他の人に役立つ場合に備えて、これが私の新しく改善された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 を作成します。