首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jasmine不使用木偶剧操纵者

jasmine不使用木偶剧操纵者
EN

Stack Overflow用户
提问于 2018-01-29 17:26:30
回答 3查看 2.2K关注 0票数 1

我正在尝试使用puppeteer在jasmine中运行一个简单的测试,但是当我在我的测试脚本中使用它时,我无法让puppeteer工作:

代码语言:javascript
复制
const puppeteer = require('puppeteer');

describe("Jasmine puppeteer", function() {

  let browser;
  let page;

  beforeAll(() => {
    browser = await puppeteer.launch({headless: false});
    page = await browser.newPage();
    await page.goto('chrome://newtab');
    await page.screenshot({path: 'a.png'});
  })

  it("jasmine puppeteer", () => {
    expect(await page.title()).toBe("");
    done();
  });

  afterAll(() => {
  })
});

在运行此脚本时,我得到:

代码语言:javascript
复制
$ npm test spec/testspec.js

> test@0.0.1 test D:\sample
> jasmine "spec/testspec.js"

D:\sample\spec\testspec.js:10
    browser = await puppeteer.launch({headless: false});
                    ^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
    at D:\sample\node_modules\jasmine\lib\jasmine.js:93:5
npm ERR! Test failed.  See above for more details.

npm test简单地指向jasmine。如果我注释木偶师相关的代码,测试就能正常工作。

EN

回答 3

Stack Overflow用户

发布于 2018-01-29 17:50:20

await只能在async function内部工作。

代码语言:javascript
复制
beforeAll((done) => {
    let screenshot = async function() {
        browser = await puppeteer.launch({ headless: false });
        page = await browser.newPage();
        await page.goto('chrome://newtab');
        await page.screenshot({ path: 'a.png' });
    }
    screenshot().then(done)
})
票数 3
EN

Stack Overflow用户

发布于 2018-01-29 18:50:47

根据第一个答案,我将所有awaits都放在async函数中。然而,我仍然不能运行测试脚本。根据this github issue的说法,jasmine不支持async/await,一些评论建议解决这个问题。

生成工作脚本:

代码语言:javascript
复制
const puppeteer = require('puppeteer');

function testAsync(specFunction) {
  return (done) => {
      specFunction().then(() => {
          done();
      }).catch((error) => {
          done.fail(error);
      });
  };
}

describe("Jasmine puppeteer", function() {

  let browser;
  let page;

  beforeAll(testAsync(async () => {
    browser = await puppeteer.launch({headless: false});
    page = await browser.newPage();
    await page.goto('https://example.com');
    await page.screenshot({path: 'a.png'});
  }));

  it("jasmine puppeteer", testAsync(async () => {
    expect(await page.title()).toBe("");
  }));

  afterAll(() => {
  })
});
票数 1
EN

Stack Overflow用户

发布于 2018-06-04 06:44:31

您的代码应该是这样的‘’it("jasmine puppeteer",async () => { expect(await page.title()).toBe("");done();});‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48497986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档