实习生:一个工作区中多个项目的 DRY Runners
Intern: DRY Runners for multiple project in one workspace
虽然意识到我的项目设置可能是我的问题的根本原因,但我希望得到一些帮助(从另一个框架迁移到 Intern):
我在一个开发工作区中有不同的 (>20) 个项目,所以我有 (>20) 个带有测试代码的不同目录。我希望一个项目可以自行测试,但也希望一起执行所有套件。
我指定使用 RequireJS 作为 AMD 加载器,并且可以通过配置文件在每个项目(一个用于 nodeJS,一个用于浏览器)中找到我的测试。 PLUS 我有一个整体配置文件指定了 所有 个文件。
你可以想象有很多重复,什么是 DRY 的好方法?
注意:也欢迎帮助更好地描述我的问题(更通用或更少 TLDR)!
由于 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'),
// …
};
});
虽然意识到我的项目设置可能是我的问题的根本原因,但我希望得到一些帮助(从另一个框架迁移到 Intern):
我在一个开发工作区中有不同的 (>20) 个项目,所以我有 (>20) 个带有测试代码的不同目录。我希望一个项目可以自行测试,但也希望一起执行所有套件。 我指定使用 RequireJS 作为 AMD 加载器,并且可以通过配置文件在每个项目(一个用于 nodeJS,一个用于浏览器)中找到我的测试。 PLUS 我有一个整体配置文件指定了 所有 个文件。
你可以想象有很多重复,什么是 DRY 的好方法?
注意:也欢迎帮助更好地描述我的问题(更通用或更少 TLDR)!
由于 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'),
// …
};
});