【问题标题】:How can I run some code in Node prior to running a browser test with Intern?在使用 Intern 运行浏览器测试之前,如何在 Node 中运行一些代码?
【发布时间】:2020-02-22 02:08:25
【问题描述】:

对于 Intern,我如何在运行浏览器测试之前在 Node 中运行一些设置代码,但在运行 Node 测试时不能?我知道我完全可以在实习生之外做到这一点,但是实习生有什么可以处理的吗?

举一个更具体的例子:我正在为一个与 Python 服务器通信的 HTTP 库运行测试。在 Node 中运行时,我可以运行 spawn("python", ["app.py"]) 来启动服务器。但是,在浏览器中,我需要在浏览器开始运行测试之前运行该命令。

换一种说法:在启动浏览器测试之前,Intern 是否有一种内置方法可以在 Node 进程中运行一些代码?

【问题讨论】:

    标签: intern


    【解决方案1】:

    默认情况下,Intern 将运行为 node 配置的插件,无论您在哪个环境中运行。

    因此,您可以创建一个挂钩到 runStartrunEnd 事件的插件,如下所示:

    intern.on("runStart", () => {
      console.log("Starting...");
      // Setup code here
    });
    
    intern.on("runEnd", () => {
      console.log("Ending...");
      // Teardown code here
    });
    

    这些处理程序将在 Node 进程内运行,因此可以访问所有可用的 Node API。

    此外,您可以通过查看intern.config.environments 来检测正在测试哪些环境:

    {
      environments: [
        {
          browserName: 'chrome',
          browserVersion: undefined,
          version: undefined
        }
      ]
    }
    

    通过查看环境,您可以确定是否需要运行设置代码。

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 2020-01-10
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多