2017-08-25 75 views
1

我有一個很大的CSV文件,其中包含複雜計算的輸入和預期輸出。我想用這個文件作爲我用Node編寫的計算器測試的基礎。但是,似乎像Mocha和Vows這樣的框架期望在CSV文件被讀取和解析後同步輸出測試,而不是異步輸出。延遲動態測試創建

我可以通過將CSV轉換爲JSON並將其包含在我的測試文件中來解決此問題,但我寧願使用權威性CSV文件,無論如何,我只是好奇如何處理這種情況。謝謝。

基本方法現在(使用csvtojson):

const cases = []; 
    csv() 
     .fromFile('../testdata/test.csv') 
     .on('json', (rowObj) => { 
      // convert columns to inputs and expected 
      cases.push(inputs: inputs, expected: expected); 
     }) 
     .on('end',() => { 
      describe('Test cases', function() { 
       cases.forEach((test) => { 
       it(`${dynamicCaseName}`,() => { 
        // do our calculation 
        assert.equals(ours, test.theirs); 
       }); 
       }); 
      }); 
     }); 

回答

1

你可以只單獨測試的邏輯和完全加載,包裹裝載機在該塊試驗陣列填充,直到一個承諾(非常簡單的用異步/等待,如果你正在使用node8,否則只是Promise.each結果。

如果你真的不想要做的,你可以Promisify測試框架

+1

聖保羅,這個問題已被標記爲重複然而,如果你 看看它應該重複的問題,我認爲你的答案好多了。也許你可以在那裏添加你的答案,這有利於那些想要解決這個問題的人? – ed94133

+0

當然我也會在那裏添加它 –