2014-11-28 2 views
1

Мне нужно определить имя пакета Meteor, которое в настоящее время тестирует данный тестовый файл, чтобы я мог получить путь к активам. Например, если мы тестируем fortawesome: fontawesome, активы будут доступны по цене /packages/fortawesome_fontawesome/.Получите имя пакета, который тестирует TinyTest.

Как я могу получить имя самого пакета, который тестирует 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'); 
+0

[MeteorTesting.com] (http://meteortesting.com) автор @ Sam-Hatoum может знать? –

ответ

0

я не нашел вызов API для этого, но Package объект содержит все загруженные пакеты, включая тот, который начинается с local-test, который до сих пор тестировался:

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, так осторожны, где вы разместите код, указанный выше.