实习生:在一个工作区中为多个项目提供DRY Runners

时间:2015-11-19 16:32:35

标签: node.js browser requirejs configuration-files intern

虽然我意识到我的项目设置可能是我的问题的根本原因,但这是我想要的一些帮助(从另一个框架转移到Intern):

我在一个开发工作区中有不同的(> 20个)项目,因此我使用测试代码(> 20)不同的目录。我希望一个项目可以自行测试,但也希望一起执行所有套件。 我指定使用RequireJS作为AMD加载器,并且可以通过配置文件在每个项目(一个用于nodeJS,一个用于浏览器)中找到我的测试。 PLUS 我有一个整体配置文件,指定所有文件。

你可以想象有很多重复,干什么是一个好方法?

注意:也欢迎帮助更好地描述我的问题(更通用或更少TLDR)!

1 个答案:

答案 0 :(得分:1)

由于Intern配置文件只是AMD模块,您可以使用普通的依赖性加载机制来加载和组合来自多个文件的配置数据:

// in your “do everything” master configuration
define([
  'projectA/tests/intern',
  'projectB/tests/intern',
  'projectC/tests/intern',
  // …
], function () {
  var configs = Array.prototype.slice.call(arguments, 0);
  function getCombined(key) {
    return Array.prototype.concat.apply([], configs.map(function (config) {
      return config[key];
    }));
  }

  return {
    suites: getCombined('suites'),
    functionalSuites: getCombined('functionalSuites'),
    // …
  };
});