Node.js-write CSV file在生产中创建空文件,而在Mocha测试中为OK
显示将对象转储到CSV文件中的代码段。 文件写入是使用模块完成的,它返回一个承诺 这段代码在我所做的所有Mocha测试中都能完美地工作 当主nodejs应用程序(涉及原始Node.js-write CSV file在生产中创建空文件,而在Mocha测试中为OK,node.js,stdin,fs,csv-write-stream,Node.js,Stdin,Fs,Csv Write Stream,显示将对象转储到CSV文件中的代码段。 文件写入是使用模块完成的,它返回一个承诺 这段代码在我所做的所有Mocha测试中都能完美地工作 当主nodejs应用程序(涉及原始process.stdin和console.log调用以及与用户交互的服务器端REPL应用程序)调用代码时,会创建CSV文件,但该文件始终为空,并且似乎不会抛出错误/警告 我已经用节点调试和Chrome开发工具对REPL代码进行了大量调试:我确信WriteStream的事件处理程序工作正常:没有“错误”,所有“数据”似乎都得到了
process.stdin
和console.log
调用以及与用户交互的服务器端REPL应用程序)调用代码时,会创建CSV文件,但该文件始终为空,并且似乎不会抛出错误/警告
我已经用节点调试和Chrome开发工具对REPL代码进行了大量调试:我确信WriteStream的事件处理程序工作正常:没有“错误”,所有“数据”似乎都得到了处理,“关闭”运行,承诺按预期解决
然而,在后一种情况下,文件总是0字节。我查了好几个问答题,找不到像这样具体的问题
我的问题是:
- 我会错过一些错误吗?如何确保跟踪有关文件写入的所有通信
- 我可以向哪个方向加强调查?其他哪种设置可以帮助我隔离问题
- 既然问题可能是由于等式中存在
process.stdin
,那么如何在不必编写webapp的情况下与用户创建简单、轻量级的交互
我在Windows7上工作。节点6.9.4、npm 3.5.3、csv写入流2.0.0。我通过以下两种方式解决了此问题:
- 在
FileWriteStream
发生时而不是在CSVWriteStream的“结束”事件时解决承诺
- 删除
process.exit()
我在操作结束时使用的process.stdin
(这意味着可能需要一些更正)
如何测试它?测试条件是否与主应用程序中使用的条件类似?您在主应用程序中使用了process.stdin
,这在摩卡很难测试,所以可能存在问题?描述了如何模拟进程.stdin
。这很有趣。不,我的测试只是测试代码。将尝试在测试中包含process.stdin
模拟。非常感谢。