实习单元测试:加载需要浏览器上下文的模块

时间:2014-06-13 10:44:45

标签: javascript node.js unit-testing intern

我已经为我们的控制器/路由器编写了简单的单元测试..但是无法让它们由实习生运行.Router模块需要加载其他模块,例如在这个实例中,我需要将它添加到实习生的配置文件作为加载器/包中的依赖项...然后加载Pace模块确定,但实习生的运行器失败并显示“参考错误:窗口未定义” 。 Pace模块需要在浏览器中运行,但实习生似乎是在Node上下文中运行...我正在使用以下命令:

node node_modules/intern/client.js config=test/intern

我试过this answer,即。从加载器/包中取出Pace模块,并且只有当实习生在主机 - 浏览器上下文中时才添加测试用例..然后实习生跳过我的测试用例,因为它无法进入if(has)块...这里是我添加到intern.js的代码:

var suites = [];
suites.push('test/unit/all');

if (has('host-browser')) {
    suites.push('test/unit/app/controller/Router');
}

return {
// ...
    suites: suites,
// ...
};

实习生似乎正在将其上下文切换到Node,我该如何将其保存在浏览器中?

1 个答案:

答案 0 :(得分:2)

client.js是Intern的node.js客户端,它在Node.js下运行测试。要在浏览器中运行测试,您需要使用client.html或使用runner.js和WebDriver服务器(如Selenium)运行测试。