实习生unit testing:加载需要浏览器上下文的模块

我已经为我们的控制器/路由器编写了简单的unit testing,但不能让他们通过实习运行..路由器模块需要加载其他模块,例如pace.js,在这个实例中,我需要将它添加到实习生的config文件作为loader / packages中的一个依赖项…然后加载Pace模块ok,但是实习生的runner失败,并且出现'Reference Error:window is not defined'。 步伐模块需要在浏览器中运行,但实习生似乎在节点上下文中运行它…我正在使用以下命令:

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

我试过这个答案 ,即。 从loader / packages中取出Pace模块,并且只有当intern在主机浏览器上下文时才添加testcase,但是实习者跳过我的testing用例,因为它不能进入​​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, // ... }; 

实习生似乎将其上下文切换到节点,我怎样才能保持它在浏览器?

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