基于 TestCafe 的端到端测试
自定义浏览器支持
/**
 * Testcafe browser provider plugin for the nightmare browser automation library.
 */
export default {
  // reference to Nightmare instance
  nightmare: null, // map with open page references
  openedPages: {}, // multiple browsers support
  isMultiBrowser: false, // open new page in browser
  async openBrowser(id, pageUrl) {
    const page = await this.nightmare.goto(pageUrl);
    this.openedPages[id] = page;
  }, // close given page in browser
  async closeBrowser(id) {
    const page = this.openedPages[id];
    delete this.openedPages[id];
    await page.end();
  }, // init browser
  async init() {
    const conf = {
      show: debug.enabled(),
      openDevTools: debug.enabled()
    };
    this.nightmare = Nightmare(conf);
  },
  async dispose() {
    return;
  }, // resize browser window to given size
  async resizeWindow(id, width, height) {
    await this.nightmare.viewport(width, height);
  }, // take screenshot of given page in browser
  async takeScreenshot(id, screenshotPath) {
    await this.nightmare.screenshot(screenshotPath);
  }
};