テストを竹に統合しようとしています。Bamboo では、テスト結果を junit xml 形式にする必要があるようです。このため、"grunt jasmine" を実行して、テスト結果を xml 形式で出力する必要があります。私は jasmine/grunt/junit を初めて使用し、これを機能させるために、認めるよりも多くの時間を費やしてきました。私はさまざまなチュートリアルとボード (主にhttps://gist.github.com/asabaylus/3059886 ) に従ってきましたが、立ち往生しています。
gitbash から "grunt jasmine" を実行すると、スペックは正常に実行されますが、出力ファイルが生成されず、次のエラーが表示されます... " テンプレートの処理中にエラーが発生しました (未定義のメソッド 'indexO f' を呼び出せません)。 --force を使用して続行します。
警告のため中止されました。」
他のファイルを変更する必要はありますか? 誰でも私がこれを解決するのを手伝ってくれますか?
よろしくお願いします!CC
grunt.js ファイル
/*global module:false*/
module.exports = function ( grunt ) {
// Project configuration.
grunt.initConfig({
meta: {
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
'<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' +
'* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */'
},
lint: {
files: ['grunt.js', 'src/**/*.js']
},
jasmine: {
all: ['./SpecRunner.html'],
junit: {
dest: 'test-results'
}
},
concat: {
dist: {
src : ['<banner:meta.banner>', '<file_strip_banner:src/buyitnow.js>'],
dest: 'dist/buyitnow/<%= meta.version %>/buyitnow.js'
}
},
min: {
dist: {
src : ['<banner:meta.banner>', '<config:concat.dist.dest>'],
dest: 'dist/buyitnow/<%= meta.version %>/buyitnow.min.js'
}
},
watch: {
files: '<config:lint.files>',
tasks: 'lint'
},
jshint: {
options: {
curly : true,
eqeqeq : true,
immed : true,
latedef: true,
newcap : true,
noarg : true,
sub : true,
undef : true,
boss : true,
eqnull : true,
browser: true,
jquery : true,
node : true
},
globals: {}
},
uglify: {}
});
grunt.loadNpmTasks('grunt-jasmine-task');
// Default task.
grunt.registerTask('default', 'lint jasmine concat min cssmin');};
私の specrunner.html ファイル
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Spec Runner</title>
<link rel="shortcut icon" type="image/png" href="lib/jasmine-1.3.1/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="lib/jasmine-1.3.1/jasmine.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine.async.min.js"></script>
<script type="text/javascript" src="lib/sinon-1.6.0.js"></script>
<!-- For JUnit output of test results include the following link to Lary Myer's JUnit reporter -->
<script type="text/javascript" src="node_modules/jasmine-reporters/src/jasmine.junit_reporter.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/binSpec.js"></script>
<script type="text/javascript">
(function() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
// Specify target test results folder as below, for now
var junitReporter = new jasmine.JUnitXmlReporter('test-results/');
jasmineEnv.addReporter(junitReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};
function execJasmine() {
jasmineEnv.execute();
}
})();
</script>
</head>
<body>
</body>
</html>