当前位置: 首页 > 知识库问答 >
问题:

根钩子插件运行之前,所有测试与摩卡和剧作家

班泽语
2023-03-14

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

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

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

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

hooks.js

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标志(doco),以便测试命令如下所示(在package.json中):

"scripts": {
    ...
    "test:e2e": "vue-cli-service test:e2e --require './tests/e2e/hooks.js",
},

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

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

共有1个答案

公羊招
2023-03-14

好的。所以我很接近了。
我必须使用公共JS语法。
我想我需要继续努力,因为我想让它在打字稿中工作。

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

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中:

"scripts": {
    ...
    "test:e2e": "vue-cli-service test:e2e -r ./tests/e2e/hooks",
},

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

 类似资料:
  • 我正在使用node.js和摩卡单元测试,我希望能够通过npm运行测试命令。当我在测试文件夹中运行摩卡测试时,测试成功运行。但是,当我运行npm测试时,测试给我一个错误。 下面是我的package.json的一个片段: 有人知道为什么npm测试会给我一个错误,但是mocha测试运行正常吗? 谢谢

  • 方法和测试位于一个类中,例如 下面是我的testng.xml的示例,其中包含了包含功能测试的包 UPD.post修改后的代码中包含AfterTest。我只使用before/aftermethod注释

  • 钩子是插件执行的触发器;插件就像挂在钩子上的东西; 插件只有实现相应钩子方法,并安装启用成功后才能执行; ThinkCMF系统内置了很多钩子;请查看后台插件钩子管理里; 开发者也可以用hook方法在控制器中加入钩子,让你的应用具有更好的扩展性; 同时也可以模板里加入钩子<hook name="footer_start"/>; 钩子也支持传入参数: <php>$param="test"</php>

  • 钩子是插件执行的触发器;插件就像挂在钩子上的东西; 插件只有实现相应钩子方法,并安装启用成功后才能执行; ThinkCMF系统内置了很多钩子;http://www.thinkcmf.com/document/hooks.html 开发者也可以用hook('test')方法在控制器只加入钩子,让你的应用具有更好的扩展性; 同时也可以模板里加入钩子{:hook('footer')}; 钩子也支持传入参

  • 钩子是插件执行的触发器;插件就像挂在钩子上的东西; 插件只有实现相应钩子方法,并安装启用成功后才能执行; ThinkCMF系统内置了很多钩子;请查看后台插件钩子管理里; 开发者也可以用hook方法在控制器中加入钩子,让你的应用具有更好的扩展性; 同时也可以模板里加入钩子<hook name="footer_start"/>; 钩子也支持传入参数: <php>$param="test";</php>

  • 它是可以配置surefire插件只运行一些测试并行和其他顺序? 也可以使用surefireforkCount来运行声明为jUnit Suite的并行测试吗?