node.js - 使用 Jasmine Hook 捕获测试套件的总时间或持续时间

标签 node.js jasmine protractor

我一直在尝试从 jasmineDone Hook 检索“totalTime”或从 SuiteResult 检索“duration”,如 [https://jasmine.github.io/api/edge/global.html#] 中所述]但它们似乎不可用。如果有任何指点,将不胜感激?

我找到了@DublinDev对此的答案Jasmine get current test result这很有帮助。这允许我使用 specDone 钩子(Hook)获取每个测试的持续时间,我可以使用该钩子(Hook)并添加每个结果,但我很想知道我是否做错了什么。

我正在使用上面链接(第二个链接)中的以下代码,并且希望 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 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`)
        }
    })
}

Screenshot of output

关于node.js - 使用 Jasmine Hook 捕获测试套件的总时间或持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60300535/

相关文章:

javascript - 统计 Meteor 中帖子的评论数

javascript - "ReferenceError: Can' t 找到变量 : $j. 。”在 jasmine 中测试时

javascript - Jasmine 2.x 附带 Protractor 了吗?

javascript - ExpressJS - 无法获取更新用户的数据

node.js - 如何创建一个同时监听两个不同端口的 sails.js 应用程序

javascript - 如何使用 JavaScriptCore 框架执行 JavaScript?

angularjs - 如何使用 VSCode 工具调试 jasmine karma 测试

javascript - 如何在 Protractor 中比较两个窗口之间的两个元素的值?

javascript - 尝试运行 Selenium 时出现问题

node.js - 如何解决/bin/sh : node-pre-gyp: not found? 与 docker 相关的问题