获取TinyTest正在测试的软件包的名称

时间:2014-11-28 01:19:40

标签: javascript testing meteor tinytest

我需要确定给定测试文件当前正在测试的Meteor包的名称,以便我可以派生出资产的路径。例如,如果我们正在测试令人敬畏的事情:fontawesome,可以在/packages/fortawesome_fontawesome/访问资产。

如何获取TinyTest正在测试的软件包的名称?

package.js

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

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

test.js

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

1 个答案:

答案 0 :(得分:0)

我还没有找到针对此的API调用,但Package对象包含所有已加载的包,包括以local-test开头的包,该包迄今为止已经过测试的包:< / p>

enter image description here

因此,

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

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