您可以将 screen.debug() 的结果打印/写入文件吗?

Rem*_*emi 6 javascript reactjs jestjs react-testing-library

在我的一项测试中,我期待某种 DOM 更改。然而,它所在的页面相当长。

所以对于较小的组件我通常做的就是使用screen.debug()方法。但由于文件很长,我也开始使用DEBUG_PRINT_LIMIT=50000. 现在最终得到了我得到的结果。

但这让我想知道,是否可以将输出保存在文件中?

zor*_*ord 6

根据文档,screen.debug本质上是console.log(prettyDOM()).

所以你可以prettyDOM()直接使用,并对结果做任何事情。

我会将copy(prettyDOM())其放在剪贴板上,然后手动将其粘贴到文本文件中(在 Chrome 中)或将其保存到文件中(在节点中)。

下面是一个辅助函数,演示了如何使用它来创建包含 DOM 内容的文件:

import fs from "node:fs";
import { prettyDOM } from "@testing-library/dom";

export function dump(element) {
  fs.mkdirSync("dump", { recursive: true });
  fs.writeFileSync(
    `dump/${Date.now()}.html`,
    prettyDOM(element, 1000000, { highlight: false }) || "");
};
Run Code Online (Sandbox Code Playgroud)

  • 难道你不能在测试中导入`fs`并将`prettyDOM()`的结果写入文件吗? (2认同)