我正在为命令行应用程序编写端到端测试,我必须做文件操作(如cp
,mv
,rm
,touch
和mkdir
)。测试可以在我的本地环境中正常执行。当它们在服务器上跨平台执行时,就会出现问题,因为文件操作会相互干扰。问题是:
- 在测试代码中开始使用shell命令似乎是错误的,我应该以编程方式编写命令吗?
- 如果上面是"是",有没有什么东西可以作为"临时文件系统"?即只可见为了这个过程?这样当测试在其他平台上运行时,文件就不会被弄乱了?
- 似乎互斥锁可以工作,但它会减慢整个构建。
对不起,这是一个笼统而又具体的问题。我怀疑会有一个完美的答案,但我很乐意听到一些建议和意见,因为我是Go和测试的新手。谢谢你的帮助!
在代码中使用OS命令没有什么错,否则这些命令将无法使用,尽管根据目标环境可能不兼容,并且您现在面临的可能有一些限制。一个可以作为文件命令层的工具是Afero,您甚至可以使用它来模拟内存中的操作和S3资源。