使用Intern,如何在运行浏览器测试之前在Node中运行一些设置代码,但是在运行Node测试时如何在not中运行?我知道我可以完全在Intern之外做到这一点,但是Intern的一部分可以处理吗?
更具体的例子:我正在测试与Python服务器通信的HTTP库。在Node中运行时,我可以运行spawn("python", ["app.py"])
启动服务器。但是,在浏览器中,我需要在浏览器开始运行测试之前运行该命令。
换句话说:在启动浏览器测试之前,Intern是否有内置方法在Node进程中运行某些代码?
默认情况下,无论您在哪个环境中运行,Intern都将运行为node
配置的插件。
因此,您可以创建一个插件来挂接到runStart
和runEnd
事件,如下所示:
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
}
]
}
通过查看环境,可以确定是否需要运行安装代码。