使用 Jasmine Hook 捕获测试套件的总时间或持续时间
Capture Total Time or duration of a Test Suite using Jasmine Hook
我一直在尝试从 jasmineDone 挂钩中检索 'totalTime' 或从 SuiteResult 中检索 'duration',如 [https://jasmine.github.io/api/edge/global.html#] 中所述,但它们似乎不可用。将不胜感激任何指点?
我发现@DublinDev 对此 的回答非常有帮助。这允许我使用 specDone 挂钩获取每次测试的持续时间,我可能会使用它并添加每个结果,但我很想知道我是否做错了什么。
我正在使用上面 link 中的以下代码(第 2 个 link),并且希望 console.logs 中的任何一个输出时间但都没有输出任何内容
function dbReporter() {
this.jasmineStarted = function (options) { };
this.specStarted = function (result) { };
this.specDone = async function (result) { };
this.suiteStarted = function (result) { };
this.suiteDone = function (result) {
console.log('duration=', result.duration)
}
this.jasmineDone = async function (result) {
console.log('totalTime=', result.totalTime)
}
}
module.exports = dbReporter;
鉴于您已经拥有最新版本的 Jasmine,我建议您制作自己的计时器,该计时器以 jasmineStarted 挂钩开始并以 JasmineDone 挂钩结束。
onPrepare: () => {
//Create a global variable to be used for the timer
global.jasmineTimer = 0;
jasmine.getEnv().addReporter({
jasmineStarted: function (options) {
jasmineTimer = Date.now();
console.log(`Starting execution ${jasmineTimer}`)
},
jasmineDone: async function (result) {
console.log(`Finished execution in ${(Date.now() - jasmineTimer) / 1000}s`)
}
})
}
我一直在尝试从 jasmineDone 挂钩中检索 'totalTime' 或从 SuiteResult 中检索 'duration',如 [https://jasmine.github.io/api/edge/global.html#] 中所述,但它们似乎不可用。将不胜感激任何指点?
我发现@DublinDev 对此
我正在使用上面 link 中的以下代码(第 2 个 link),并且希望 console.logs 中的任何一个输出时间但都没有输出任何内容
function dbReporter() {
this.jasmineStarted = function (options) { };
this.specStarted = function (result) { };
this.specDone = async function (result) { };
this.suiteStarted = function (result) { };
this.suiteDone = function (result) {
console.log('duration=', result.duration)
}
this.jasmineDone = async function (result) {
console.log('totalTime=', result.totalTime)
}
}
module.exports = dbReporter;
鉴于您已经拥有最新版本的 Jasmine,我建议您制作自己的计时器,该计时器以 jasmineStarted 挂钩开始并以 JasmineDone 挂钩结束。
onPrepare: () => {
//Create a global variable to be used for the timer
global.jasmineTimer = 0;
jasmine.getEnv().addReporter({
jasmineStarted: function (options) {
jasmineTimer = Date.now();
console.log(`Starting execution ${jasmineTimer}`)
},
jasmineDone: async function (result) {
console.log(`Finished execution in ${(Date.now() - jasmineTimer) / 1000}s`)
}
})
}