我有自定义记者的Jasmine
var myReporter = {
jasmineStarted: function(suiteInfo) {
console.log('Running suite with ' + suiteInfo.totalSpecsDefined);
},
suiteStarted: function(result) {
console.log('Suite started: ' + result.description + ' whose full description is: ' + result.fullName);
},
specStarted: function(result) {
console.log('Spec started: ' + result.description + ' whose full description is: ' + result.fullName);
},
specDone: function(result) {
console.log('Spec: ' + result.description + ' was ' + result.status);
for(var i = 0; i < result.failedExpectations.length; i++) {
console.log('Failure: ' + result.failedExpectations[i].message);
console.log(result.failedExpectations[i].stack);
}
},
suiteDone: function(result) {
console.log('Suite: ' + result.description + ' was ' + result.status);
for(var i = 0; i < result.failedExpectations.length; i++) {
console.log('AfterAll ' + result.failedExpectations[i].message);
console.log(result.failedExpectations[i].stack);
}
},
jasmineDone: function() {
console.log('Finished suite');
}
};
jasmine.getEnv().addReporter(myReporter);
describe('Top Level suite', function() {
it('spec', function() {
expect(1).toBe(1);
});
describe('Nested suite', function() {
it('nested spec', function() {
expect(true).toBe(true);
});
});
});
直播:http://jsfiddle.net/wLnmbh88/
现在结果显示在html和控制台上,但我需要在html中关闭它。如何仅在控制台中显示测试结果? 代码示例来自jasmine文档。
答案 0 :(得分:8)
无需移除jasmine-html.js
并摆弄自定义boot.js
。在添加您选择的记者之前,请删除所有记者:
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().clearReporters();
jasmine.getEnv().addReporter(new jasmineReporters.TapReporter());
答案 1 :(得分:-1)
默认HTML记者添加到文件<index enabled="true">
和jasmine-html.js
in your JSFiddle中。
boot.js
(source) - 实际上是记者本身,通过Jasmine报告API实现;
jasmine-html.js
(source) - 一个文件,为Jasmine配置环境并执行它。此外,它还会激活默认的HTML报告器,因为这两个文件都被认为是Jasmine的核心,因此通过将它们全部包含在内,您将拥有基本的Jasmine安装。
在您的情况下,您希望实现自定义报告者+您希望摆脱默认的HTML报告者,因此您应该删除boot.js
并将jasmine-html.js
替换为自定义报告者。 Jasmine文档中有一个关于configuring custom boot和annotated source的文章。
没有启用任何记者的Jasmine 2.x的基本自定义启动脚本应该看起来像这样:
boot.js
确保在(function() {
window.jasmine = jasmineRequire.core(jasmineRequire);
var env = jasmine.getEnv();
var jasmineInterface = jasmineRequire.interface(jasmine, env);
extend(window, jasmineInterface);
window.setTimeout = window.setTimeout;
window.setInterval = window.setInterval;
window.clearTimeout = window.clearTimeout;
window.clearInterval = window.clearInterval;
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
env.execute();
};
function extend(destination, source) {
for (var property in source) destination[property] = source[property];
return destination;
}
}());
之后包含此启动脚本。
设置好引导后,您可以照常注册记者:
jasmine.js
甚至更好 - 将它添加到启动脚本中。
检查JSFiddle:http://jsfiddle.net/wLnmbh88/2/