即使没有测试,Package.on_test也会运行

时间:2014-08-01 16:23:31

标签: node.js meteor

这是我们的应用在启动时的样子:

=> Started proxy.
=> Started MongoDB.     
>>>>> IN ON_TEST
meteor-collection-management: updating npm dependencies -- mongodb...

哎呀。在meteor-collection-management / package.js(我们自己的包)中,有这样的:

Package.on_test(function(api) {
    console.log(">>>>> IN ON_TEST");
    Npm.depends({
      mongodb: "1.4.1"
    });
    api.use(['meteor-collection-management', 'tinytest', 'test-helpers']);
    api.add_files('tests/dbobject-test.js', ['client', 'server']);
    api.add_files('tests/enums-test.js', ['client', 'server']);
});

为什么Package.on_test会运行?即使在节点调试模式下,我也没有在测试模式下运行。

1 个答案:

答案 0 :(得分:1)

on测试函数只是运行以构建依赖关系图,即使它实际上没有使用。我看到你也开了一个问题。这里有更多关于它的作用的信息:https://github.com/meteor/meteor/blob/a40a6273953c0e18eddcd67919754814461c5dd4/tools/packages.js#L1434

因此它构建了.test,并且需要运行该方法来获取所需的文件。 Meteor需要知道在项目运行之前它需要什么,这可能就是为什么两者都运行的原因。 (包需要构建到单个文件中,与Meteor的其余部分略有不同)