1

我需要确定给定测试文件当前正在测试的 Meteor 包的名称,以便我可以导出资产的路径。例如,如果我们正在测试 fortawesome:fontawesome,资产将可在/packages/fortawesome_fontawesome/.

如何获得TinyTest正在测试的包的名称?

包.js

Package.onTest(function (api) {
  api.use(packageName, where);
  api.use(['tinytest', 'http'], 'client');

  api.addFiles('test.js', 'client');
});

测试.js

var packageName = ???;
HTTP.get('/packages/' + packageName.replace(':', '_') + '/fonts/fontawesome-webfont.woff');
4

1 回答 1

0

我还没有找到对此的 API 调用,但该Package对象包含所有已加载的包,包括以 开头的包,local-test到目前为止,它一直是经过测试的包:

在此处输入图像描述

所以,

var packageName = _.find(Object.keys(Package), function(p) {
  return p.search(/local-test/) > -1
}).replace('local-test:', '');

但是请注意,由于某些神秘的原因,local-test:<your_package>在第一次 Tinytest 调用之前没有加载包,所以在上面放置代码时要小心。

于 2014-11-28T01:50:22.697 回答