Node.js 使用Jasmine钩子捕获测试套件的总时间或持续时间

Node.js 使用Jasmine钩子捕获测试套件的总时间或持续时间,node.js,jasmine,protractor,Node.js,Jasmine,Protractor,我一直在尝试从jasmineDone钩子中检索“totalTime”,或从SuiteResult中检索“duration”,如[中所述,但它们似乎不可用。如果有任何提示,我将不胜感激 我发现@DublinDev的答案非常有用。这让我可以使用specDone钩子获得每次测试的持续时间,我可以潜在地使用它并添加每个结果,但我很想知道我是否做错了什么 我正在使用上面链接(第二个链接)中的以下代码,希望console.log中的任何一个都能输出一个时间,但它们都不能输出任何内容 function dbR

我一直在尝试从jasmineDone钩子中检索“totalTime”,或从SuiteResult中检索“duration”,如[中所述,但它们似乎不可用。如果有任何提示,我将不胜感激

我发现@DublinDev的答案非常有用。这让我可以使用specDone钩子获得每次测试的持续时间,我可以潜在地使用它并添加每个结果,但我很想知道我是否做错了什么

我正在使用上面链接(第二个链接)中的以下代码,希望console.log中的任何一个都能输出一个时间,但它们都不能输出任何内容

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,我建议你自己制作一个计时器,从JasmineStartedHook开始,到JasmineDone hook结束

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`)
        }
    })
}

鉴于您已经拥有最新版本的Jasmine,我建议您自己制作计时器,从jasmineStarted hook开始,到JasmineDone hook结束

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`)
        }
    })
}

嘿,很高兴你发现我之前的答案很有用!我也希望这能起作用。你能确认你正在使用的Jasmine版本吗?看来,
totalTime
属性只添加到了中的
jasmineDone
的结果对象中。这里是Hi DublinDev,我希望你在某处:-)我正在使用最新的版本3.5,这让它变得更加混乱。但是我只是想,也许我的本地版本是不正确的。看看这些控制台日志是否根本没有被激活,或者它们是否打印
totalTime=undefined
?我已经检查过了,版本看起来还可以并且是最新的是,它们都打印为undefinedhy,很高兴你找到了我的p上一个答案很有帮助!我也希望这能起作用。你能确认你正在使用的Jasmine版本吗?看来,
totalTime
属性只添加到了中的
jasmineDone
的结果对象中。这里是Hi DublinDev,我希望你在某个地方:-)我正在使用最新的版本3.5,这使它成为了一切更让人困惑的是。不过,我只是想知道我的本地版本可能不正确。我只是想看看这些控制台日志是否根本没有被激活,或者它们是否打印
totalTime=undefined
?我已经检查过,版本似乎正常且最新是的,它们都打印为undefined