我使用Ruby编写代码,使用Cucumber和Rspec测试它,并使用Git控制版本。但这里有一些不清楚的事情。例如。临时文件,由测试创建。我不希望每次提交都跟踪他们的更改。 那么,我应该采用什么方式:
gitignore
没用,因为在测试开始时我需要一些文件。/tmp
中找到临时文件。但是,它给测试环境带来了一些不清楚的结果。答案 0 :(得分:4)
测试开始时所需的文件应该在源代码管理中。理想情况下,您希望测试创建的临时文件位于一个目录中,以便您可以忽略整个目录。如果那不可能,那么将每个文件添加到.gitignore文件中。实际上,在测试结果之外,您的规范应该自行清理,其中应包括删除测试期间创建的临时文件。
答案 1 :(得分:1)
gitignore
没用,......
gitignore
应该在这里有用:
答案 2 :(得分:1)
Ruby有creating temp files and directories and cleaning them up for you的工具,使用它。它将为当前环境选择正确的临时文件位置,可能在您的存储库之外,您再也不用担心它们了。虽然测试的经验法则是不在源目录之外写入文件,但使用全局临时目录是可接受且可靠的。
否则,在项目中创建临时目录(可能在测试目录中)并将所有临时文件放在那里。设置.gitignore
以忽略该目录。这具有轻微的优势,可以将测试工件完全保留在源目录中,并且您可以更轻松地找到它们以进行调试。你仍然应该使用Ruby的Tempfile类来管理它们,只是告诉它使用你的临时目录,处理清理并确保你的临时名称是唯一的,以允许并行测试。
我建议只使用Tempfile.new
吐出的任何内容。记住设置特殊测试临时目录是一个你不需要的移动部分。