2016-09-20 26 views
3

我有一個需求,我需要獲取文件名。需要使用jasmine獲取文件路徑

我見過jasmine.getEnv().currentSpec.description返回spec.js描述。 同樣我需要得到spec.js完整路徑。是否有可能獲得文件路徑?

回答

3

jasmine不提供一個規範是從運行該文件的引用。 env(來自getEnv())對象僅提供有關規格和套件的信息,但不提供有關文件的信息。

您可以利用文件本身內的__filename全球獲得該文件的完整路徑的參考。例如:

const jasmine = require('jasmine-node'); 
console.log(__filename); 

describe('description for spec',() => { 
    it('should do stuff',() => { 
    console.log(jasmine.getEnv()); 
    }); 
}); 

下面是該env對象的摘要:

{ currentSpec: 
    { id: 0, 
    env: [Circular], 
    suite: 
     { id: 0, 
     description: 'description for spec', 
     queue: [Object], 
     parentSuite: null, 
     env: [Circular], 
     before_: [], 
     after_: [], 
     children_: [Object], 
     suites_: [], 
     specs_: [Object], 
     exclusive_: 0 }, 
    description: 'should do stuff', 
    queue: 
     { env: [Circular], 
     ensured: [Object], 
     blocks: [Object], 
     running: true, 
     index: 0, 
     offset: 0, 
     abort: false, 
     onComplete: [Function] }, 
    afterCallbacks: [], 
    spies_: [], 
    results_: 
     { totalCount: 0, 
     passedCount: 0, 
     failedCount: 0, 
     skipped: false, 
     items_: [], 
     description: 'should do stuff' }, 
    matchersClass: null, 
    exclusive_: 0 }, 
    currentSuite: null, 
    currentRunner_: 
    { env: [Circular], 
    queue: 
     { env: [Circular], 
     ensured: [Object], 
     blocks: [Object], 
     running: true, 
     index: 0, 
     offset: 0, 
     abort: false, 
     onComplete: [Function] }, 
    before_: [], 
    after_: [], 
    suites_: [ [Object] ] }, 
    reporter: { subReporters_: [ [Object] ] }, 
    updateInterval: 250, 
    defaultTimeoutInterval: 5000, 
    lastUpdate: 0, 
    specFilter: [Function], 
    nextSpecId_: 1, 
    nextSuiteId_: 1, 
    equalityTesters_: [], 
    exclusive_: 0, 
    matchersClass: [Function] }