【问题标题】:Get the name of the package that TinyTest is testing获取 TinyTest 正在测试的包的名称
【发布时间】:2015-01-26 15:27:04
【问题描述】:

我需要确定给定测试文件当前正在测试的 Meteor 包的名称,以便我可以导出资产的路径。例如,如果我们正在测试 fortawesome: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');

【问题讨论】:

标签: javascript testing meteor tinytest


【解决方案1】:

我还没有找到对此的 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-08-01
    • 1970-01-01
    • 2017-01-27
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2013-05-05
    • 1970-01-01
    相关资源
    最近更新 更多