2015-08-15 60 views
1

在一個業務測試beforeEach之前)塊我想從項目目錄中訪問(讀取)一個文件。但是,我不知道如何訪問該目錄,因爲process.cwd()返回運行測試的目錄,這是由節點或gulp分配的隨機私有目錄。從karma測試訪問projectDir?

如何找到項目目錄在運行測試中的內容?

describe.only('convertClaimTypes', function() { 
    var claimTypes; 

    before(function() { 
     var base = process.cwd(); 
     claimTypes = fs.readFileSync(path.join(base, 'build/resources/claimTypes.json')); 
     claimTypes = JSON.parse(claimTypes); 
    }); 
... 

回答

0

嘗試使用__dirname代替process.cwd()因爲它給你當前文件的目錄,而不是可執行文件的目錄。

例如,如果你的測試是一個目錄內/test/build是應用程序的根目錄中的目錄,從/test訪問/build像這樣:

path.resolve(__dirname, '../build/'); 
+0

試過了,該變量不存在中運行測試的上下文。 – ed4becky

+0

它是由Node維護的全局變量,所以我不明白爲什麼會這樣。也許這是你沒有正確寫出變量名?它在開始時有兩個下劃線。 – sdgluck

+0

這裏有一個解釋:https://github.com/karma-runner/karma/issues/364 – ed4becky