5

我有 JS 项目:源代码 + 测试。现在测试是在原始资源上运行的,一切都很好。

但是随后源被缩小了,我也想在它们的缩小版本上运行我的所有测试。请注意,所有函数名称都因缩小而重命名。它是可解决的任务吗?理想情况下,不要对测试/来源做出太大的改变。

我现在的配置是:TeamCity、karma.js + mocha、闭包编译器(高级优化)。

4

2 回答 2

1

我们的方法如下。我们使用闭包附带的测试套件,我们按照正常方式编写测试,然后我们使用 goog.exportSymbol 通过“反射”示例让测试与高级编译一起工作:

product.path.SomethingRegressionTest.prototype.placeInvalidSession = function() {
...
}
goog.exportSymbol('test_placeInvalidSession', function() {
  core.inject(product.path.SomethingRegressionTest).placeInvalidSession();
});

我们在这里使用注入,在拆解中我们销毁所有注入的实例,但是您可以使用一些方法。

于 2013-07-09T10:02:25.993 回答
0

对于 jQuery,我使用 modules 选项与源代码同时编译测试。它似乎运作良好。只需确保您的测试以与高级优化兼容的方式编写即可。

这是测试的 jQuery 编译选项:https ://github.com/ChadKillingsworth/jquery/blob/closure-compiler-1.9/build/closure-compiler/closure-compiler.flags

于 2013-07-10T15:44:27.517 回答