内置方法
onEnd
可以有一个可在 onEnd
函数内访问的结果对象。根据文档here,它将包含属性duration
,它是以毫秒为单位的数字。当我尝试访问 results.duration
时,该值未定义。
以下代码块应包括整个测试运行的开始时间、持续时间和结果。它不是。唯一定义的属性是
result.status
。
async onEnd(result): Promise<void> {
const suiteData: LogSuiteData = {
"@timeStamp": result.startTime,
suiteDuration: result.durationMinutes,
suiteResult: result.status,
};
logArray.push(suiteData);
await logCallHandler.postReportDataBatch(logArray);
}
进一步挖掘使我找到了 Playwright 类型
FullResult
,该类型在文档中没有提及,但 Playwright 类型中定义的类型仅具有 status
属性,如 this 屏幕截图所示。
剧作家的官方文档是否不正确?难道我做错了什么?如有任何帮助,我们将不胜感激。
您使用的是
result.durationMinutes
而不是 result.duration
。以下完整示例适用于我 @playwright/test
^1.42.1:
pw-reporter.js:
class MyReporter {
onEnd(result) {
console.log(result.duration);
}
}
module.exports = MyReporter;
playwright.config.js:
import {defineConfig} from "@playwright/test";
export default defineConfig({
reporter: [["./pw-reporter.js"]]
};
pw.test.js:
import {expect, test} from "@playwright/test";
test("1 is 1", async ({page}) => {
await expect(1).toBe(1);
});
运行
npx playwright test
并查看持续时间,414.995 或类似值。