Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jestjs 获取beforeach()和afterEach()中的Jest测试名称_Jestjs - Fatal编程技术网

Jestjs 获取beforeach()和afterEach()中的Jest测试名称

Jestjs 获取beforeach()和afterEach()中的Jest测试名称,jestjs,Jestjs,我正在运行Jest并尝试记录每个测试的开始和结束时间戳。我试图将我的时间戳记录粘贴到beforeach和afterEach块中。如何在beforeach和afterEach块中记录Jest测试的名称 另外,是否有一种更全局的方法来记录所有测试前后的测试名称和时间戳,而不使用beforeach和afterEach?beforeach中没有关于当前运行的测试的信息。与Jasmine类似,套件对象在Jest中可用,因为在描述函数中有此上下文,所以可以修补规范定义以公开所需的数据。一种更简单的方法是为截

我正在运行Jest并尝试记录每个测试的开始和结束时间戳。我试图将我的时间戳记录粘贴到beforeach和afterEach块中。如何在beforeach和afterEach块中记录Jest测试的名称


另外,是否有一种更全局的方法来记录所有测试前后的测试名称和时间戳,而不使用beforeach和afterEach?

beforeach中没有关于当前运行的测试的信息。与Jasmine类似,套件对象在Jest中可用,因为在描述函数中有此上下文,所以可以修补规范定义以公开所需的数据。一种更简单的方法是为截取测试名称的全局it定义自定义包装器函数

这是一个更好的方法。报告器接口是自记录的,必要的数据是可编辑的

性能度量已经可用:

module.exports = class TimeReporter {
  onTestResult(test, testResult, aggregatedResult) {
    for (let { title, duration } of testResult.testResults)
        console.log(`test '${title}': ${duration} ms`);
  }
}
可以像这样使用:

reporters: ['default', "<rootDir>/time-reporter.js"]

如前所述,在之前和之后,每个描述测试组都会运行一次。

您可以通过如下方式访问当前测试的名称:

expect.getState.currentTestName 此方法在每次之前/之后也适用

唯一的缺点是,它还将包含当前描述部分的名称。这可能是好的,取决于你想做什么


此外,它也没有提供您所要求的时间信息。

关于第二个问题,您考虑过之前和之后吗?@Dario-对不起,我应该说得更清楚。我的意思是获得一些全局方法来记录每个测试的名称和时间戳。不幸的是,Jest在之前和之后都没有这些信息。使用记者正是我想要的。我使用的是Jest 26.0.1的最新版本,但在testResult.testResults中看不到开始时间和结束时间。我是否需要使用特定版本的Jest?我在testResult.testResults中看到了{ancestorTitles,duration,failureMessages,fullName,numPassingAsserts,status,title}。感谢您的注意。看来我选了另一种类型。它目前保持不变。开始时间和结束时间作为testResult.perfStats提供,以防您需要它们。不客气。不幸的是,testResult.perfStats没有细分每个测试的开始和结束时间。