首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mocha和剧作家在所有测试之前运行根钩子插件

使用Mocha和剧作家在所有测试之前运行根钩子插件
EN

Stack Overflow用户
提问于 2021-07-04 07:00:44
回答 2查看 872关注 0票数 1

通过将这个插件添加到我的项目中,我为Vuejs项目连接了一些自动化测试。

Vuejs应用程序是使用vue-cli创建的。

这一切都很好,剧作家似乎是一个非常强大的自动化库。

所以我试着写一个Mocha根钩子插件,它在所有测试之前运行一次。看起来是这样的:

hooks.js

代码语言:javascript
复制
const playwright = require("playwright");

export const mochaHooks = {
  beforeAll() {
    const browser = await playwright["chromium"].launch({
      headless: false
    });

    const context = await browser.newContext();

    await page.goto("https://localhost:44392/");

    await page.fill("#Username", "demokitchenadmin");
    await page.fill("#Password", "Test1234)");

    await page.click("button.btn-primary");

    await context.storageState({ path: 'state.json' });

    await page.close();
    await context.close();
    await browser.close();
  }
};

我不知道如何将它与我的Vuejs项目集成。我尝试添加--require标志(多科),以便使测试命令看起来如下(在package.json中):

代码语言:javascript
复制
"scripts": {
    ...
    "test:e2e": "vue-cli-service test:e2e --require './tests/e2e/hooks.js",
},

不幸的是,这不能成功地运行hooks.js文件中的代码。

有人能把我推向正确的方向吗。干杯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-05 22:34:25

好的。所以我很亲密。

我不得不使用CommonJS语法。

我认为我需要继续努力,因为我想让它在打字稿中发挥作用。

在任何情况下,对于任何希望解决此问题的其他人,我都将hooks.js文件更改如下:

代码语言:javascript
复制
const playwright = require("playwright");


exports.mochaHooks = {
  async beforeAll() {

    const browser1 = await playwright["chromium"].launch({
      headless: false
      //devtools: true
    });

    const context1 = await browser1.newContext();
    const page = await context1.newPage();

    await page.goto("https://localhost:44392/account/login");


    await page.fill("#Username", "demokitchenadmin");
    await page.fill("#Password", "Test1234)");

    await page.click("button.btn-primary");

    await context1.storageState({ path: 'state.json' });

    await page.close();
    await context1.close();
    await browser1.close();
  }
};

在我的package.json

代码语言:javascript
复制
"scripts": {
    ...
    "test:e2e": "vue-cli-service test:e2e -r ./tests/e2e/hooks",
},

这是可行的,在我的所有测试之前,身份验证代码只运行一次。

票数 2
EN

Stack Overflow用户

发布于 2022-01-05 14:49:32

使用全局设置函数(https://playwright.dev/docs/test-advanced#global-setup-and-teardown),它可以在playwright.config.ts中定义。

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

https://stackoverflow.com/questions/68242431

复制
相关文章

相似问题

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