1
This gist顯示將對象轉儲爲CSV文件的代碼片段。 使用模塊csv-write-stream完成文件寫入,並返回一個承諾。Node.js - 寫入CSV文件在生產中創建空文件,同時在Mocha測試中確定
此代碼完美地工作在我所做的所有摩卡測試中。
當代碼由主的NodeJS應用程序(包括原料process.stdin
和console.log
調用作爲與用戶交互的服務器端REPL應用程序)調用,CSV文件被創建,但它總是空的,沒有錯誤/警告似乎被拋出。我相信,WriteStream的事件處理程序工作正常:沒有'錯誤',所有的'數據'似乎處理,'關閉'運行,承諾按預期解決。
儘管如此,在後一種情況下文件總是0字節。我已經檢查了幾個Q & A,因此無法找到任何具體內容。
我的問題是:
- 我可以缺少一些錯誤?我如何確保跟蹤關於文件寫入的所有通信?
- 在哪個方向我可以加強我的調查?其他設置可以幫助我隔離問題?
- 由於問題可能是由於方程中存在
process.stdin
,因此無需編寫webapp就可以創建與用戶的簡單輕量級交互方式?
我正在使用Windows 7.節點6.9.4,npm 3.5.3,csv-write-stream 2.0.0。
你如何測試它?測試條件是否與主應用中的使用方式相似?你在主應用程序中使用'process.stdin',這很難在Mocha中測試,所以可能有一個問題呢? FWIW,[這篇博文](https://glebbahmutov.com/blog/unit-testing-cli-programs/)描述瞭如何模擬'process.stdin'。 – robertklep
這很有趣。不,我的測試只是在執行代碼。將嘗試在測試中包含'process.stdin'嘲諷。謝謝! –