我有JS项目:源代码+测试。目前,测试是在原始资源上进行的,一切都很好。
但是然后消息来源缩小了,我想在他们的缩小版本上运行我的所有测试。请注意,由于缩小,所有函数名称都被重命名。它是可解决的任务吗?理想情况下,测试/来源不会做太多改变。
我现在的配置是:TeamCity,karma.js + mocha,闭包编译器(高级优化)。
答案 0 :(得分:1)
我们的方法如下。我们使用随关闭一起提供的测试套件,我们按照正常情况编写测试,然后使用goog.exportSymbol通过“反射”使测试工作进行高级编译 例如:
product.path.SomethingRegressionTest.prototype.placeInvalidSession = function() {
...
}
goog.exportSymbol('test_placeInvalidSession', function() {
core.inject(product.path.SomethingRegressionTest).placeInvalidSession();
});
我们在这里使用注入,在拆解中我们会销毁所有注入的实例,但是你可以使用一些方法。
答案 1 :(得分:0)
对于jQuery,我使用modules选项与源同时编译测试。它似乎运作良好。只需确保您的测试以与高级优化兼容的方式编写。
以下是测试的jQuery编译选项:https://github.com/ChadKillingsworth/jquery/blob/closure-compiler-1.9/build/closure-compiler/closure-compiler.flags