在 运行 使用 Intern 进行浏览器测试之前,我如何 运行 在 Node 中编写一些代码?

How can I run some code in Node prior to running a browser test with Intern?

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

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

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

默认情况下,无论您 运行 处于哪个环境,实习生都会 运行 为 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
    }
  ]
}

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