Ale*_*lex 6 javascript frontend unit-testing mocha.js puppeteer
我想在无头浏览器中运行我的mochajs前端单元测试,特别是使用puppeteer。因此,按照此处mochajs页面上的非常简单的示例,我正在运行基本单元测试,并看到结果,并且它们按应有的方式呈现在页面中。我发现当我在真实的浏览器中加载简单的示例时,它们也会被渲染到 chromium 。一切都很棒。但是,我想从调用该脚本返回这些结果。如何从运行中返回这些测试结果?换句话说:mochaconsolemochajspuppeteer
$ node my-script-running-mocha-in-puppeteer.js\n\n Array\n #indexOf()\n \xe2\x9c\x93 should return -1 when the value is not present\n\n\n 1 passing (9ms)\nRun Code Online (Sandbox Code Playgroud)\n\n我的代码基本上是这样的:
\n\nconst puppeteer = require(\'puppeteer\');\n\n puppeteer.launch().then(async browser => {\n const page = await browser.newPage();\n await page.setContent(`\n /* \n HTML page with mocha, unit tests and source.\n */\n `); \n\n // Get page content\n const content = await page.content();\n\n // I see the mocha test result in the page but now I \n // want to return them from this script.\n console.log(content);\n await browser.close();\n});\n\n\nRun Code Online (Sandbox Code Playgroud)\n
正如您所说,摩卡还将数据打印到控制台,这可能是获取测试结果的最简单方法。
要简单地镜像浏览器的 IO(包括记录到控制台的任何数据),您可以dumpio在启动浏览器时启用该选项:
puppeteer.launch({ dumpio: true })
Run Code Online (Sandbox Code Playgroud)
引用文档puppeteer.launch:
dumpio<boolean> 是否将浏览器进程的 stdout 和 stderr 通过管道传输到process.stdout和process.stderr。默认为false.
请注意,这还会将浏览器中的其他信息打印到控制台中。如果您仅查找控制台数据,则可以使用第二个选项。
console.log等的调用。console.log要仅获取记录到或等的数据console.info,您可以监听该console事件。
page.on('console', consoleMessage => {
console.log(consoleMessage.text());
if (consoleMessage.type() === 'error') {
// handle error output
}
});
Run Code Online (Sandbox Code Playgroud)
这样,您就可以获取进入控制台的所有输出。您甚至可以用来consoleMessage.type()区分错误、警告和正常输出。
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |