【问题标题】:intern unit test: loading modules that need browser context实习单元测试:加载需要浏览器上下文的模块
【发布时间】:2014-06-13 10:44:44
【问题描述】:

我已经为我们的控制器/路由器编写了简单的单元测试。但不能让它们由实习生运行。路由器模块需要加载其他模块,例如在这种情况下,pace.js,我需要将它添加到实习生的配置文件作为加载器/包中的依赖项......然后它加载 Pace 模块正常,但实习生的跑步者因“参考错误:窗口未定义”而失败. Pace 模块需要在浏览器中运行,但实习生似乎在 Node 上下文中运行它......我正在使用以下命令:

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

我试过this answer,即。从 loader/packages 中取出 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,
// ...
};

Intern 似乎正在将其上下文切换到 Node,如何将其保留在浏览器中?

【问题讨论】:

    标签: javascript node.js unit-testing intern


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 2019-11-09
      • 2018-10-30
      • 2015-02-24
      • 2016-06-17
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多