sea*_*ick 8 node.js istanbul nyc puppeteer
我在 Puppeteer 的帮助下编写了一个小型爬虫。现在我面临的挑战是我的测试相当缓慢(每次测试 > 3 秒)。我已经能够将其追踪到launchPuppeteer的功能和Istanbul/nyc的使用。
mocha,测试将在 400 毫秒内完成。nyc,测试的持续时间超过 3000 毫秒我正在使用的只是
'use strict';
const puppeteer = require('puppeteer');
module.exports = async function startBrowser() {
const options = {
args: [
// '--no-sandbox',
// '--disable-setuid-sandbox',
// '--disable-dev-shm-usage',
// '--disable-accelerated-2d-canvas',
// '--disable-gpu'
],
headless: false // true
};
return await puppeteer.launch(options);
};
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的测试:
'use strict';
/* global describe: false, before: false, it: false,
beforeEach: false, afterEach: false, after: false, window: false, document: false */
const assert = require('assert').strict;
const startBrowser = require('../');
const util = require('util');
describe('Puppeteer', function() {
let pageManager;
it('start the browser', async function() {
this.timeout(10000);
console.time('startBrowser');
const browser = await startBrowser();
console.timeEnd('startBrowser');
assert(browser);
console.time('closeBrowser');
await browser.close();
console.timeEnd('closeBrowser');
});
});
Run Code Online (Sandbox Code Playgroud)
我已经使用此代码创建了一个存储库并在此处进行测试。
nyc _mocha ./test/*.test.js运行时间约为 3500 毫秒,mocha ./test/*.test.js只需130 毫秒。
到目前为止我尝试过的:
headless: true我该怎么做才能使覆盖率测试与单独测试一样快?
使用:
'use strict'
const puppeteer = require('puppeteer')
module.exports = async function startBrowser() {
const options = {
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--no-first-run',
'--no-zygote',
'--single-process',
'--disable-gpu'
],
headless: true
}
return await puppeteer.launch(options)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8260 次 |
| 最近记录: |