只对Go中的进程可见的临时文件系统



我正在为命令行应用程序编写端到端测试,我必须做文件操作(如cp,mv,rm,touchmkdir)。测试可以在我的本地环境中正常执行。当它们在服务器上跨平台执行时,就会出现问题,因为文件操作会相互干扰。问题是:

  1. 在测试代码中开始使用shell命令似乎是错误的,我应该以编程方式编写命令吗?
  2. 如果上面是"是",有没有什么东西可以作为"临时文件系统"?即只可见为了这个过程?这样当测试在其他平台上运行时,文件就不会被弄乱了?
  3. 似乎互斥锁可以工作,但它会减慢整个构建。

对不起,这是一个笼统而又具体的问题。我怀疑会有一个完美的答案,但我很乐意听到一些建议和意见,因为我是Go和测试的新手。谢谢你的帮助!

在代码中使用OS命令没有什么错,否则这些命令将无法使用,尽管根据目标环境可能不兼容,并且您现在面临的可能有一些限制。一个可以作为文件命令层的工具是Afero,您甚至可以使用它来模拟内存中的操作和S3资源。

相关内容

最新更新