什么是处理测试、临时文件和版本控制的正确方法
What is a right way to deal with tests, temporary files and version control
我用 Ruby 编写代码,用 Cucumber 和 Rspec 测试它,用 Git 控制版本。但这里有一些我不清楚的事情。例如。由测试创建的临时文件。我不想在每次提交时跟踪他们的更改。
那么,我应该使用什么方式:
- 在项目文件夹中找到临时文件并使用一些 Git 技巧来忽略更改。
gitignore
没有用,因为当测试开始时我需要一些文件放在那个地方。
- 在
/tmp
中找到临时文件。不过,它给出了一些不清楚的测试环境。
- 还有其他处理方法吗?
gitignore
is not useful,...
gitignore
应该在这里有用:
- 您可以将这些临时文件限制在存储库中的专用文件夹中,您可以忽略所有文件夹;
- 或者您可以通过扩展名或命名约定来识别这些临时文件,您可以通过名称模式忽略它们。
测试开始时所需的文件应该在源代码管理中。理想情况下,您希望测试创建的临时文件位于一个目录中,这样您就可以忽略整个目录。如果那不可能,则将每个文件添加到 .gitignore 文件。实际上,除了测试结果之外,您的规范应该自行清理,其中应该包括删除在测试期间创建的临时文件。
Ruby 有 creating temp files and directories and cleaning them up for you 的设施,使用它。它会为当前环境选择正确的临时文件位置,可能在你的存储库之外,你再也不用担心它们了。虽然测试的经验法则是不要在源目录之外写入文件,但使用全局临时目录是可以接受且可靠的。
否则,在您的项目中创建一个临时目录(可能在您的测试目录中)并将所有临时文件放在那里。设置 .gitignore
以忽略该目录。这具有将测试工件完全保存在源目录中的 轻微 优势,并且您可以更轻松地找到它们以进行调试。您仍然应该使用 Ruby 的临时文件 class 来管理它们,只需告诉它使用您的临时目录,处理清理并确保您的临时名称是唯一的以允许并行测试。
我建议只使用 Tempfile.new
吐出来的任何东西。记住设置特殊测试临时目录是您不需要的另一部分。
我用 Ruby 编写代码,用 Cucumber 和 Rspec 测试它,用 Git 控制版本。但这里有一些我不清楚的事情。例如。由测试创建的临时文件。我不想在每次提交时跟踪他们的更改。 那么,我应该使用什么方式:
- 在项目文件夹中找到临时文件并使用一些 Git 技巧来忽略更改。
gitignore
没有用,因为当测试开始时我需要一些文件放在那个地方。 - 在
/tmp
中找到临时文件。不过,它给出了一些不清楚的测试环境。 - 还有其他处理方法吗?
gitignore
is not useful,...
gitignore
应该在这里有用:
- 您可以将这些临时文件限制在存储库中的专用文件夹中,您可以忽略所有文件夹;
- 或者您可以通过扩展名或命名约定来识别这些临时文件,您可以通过名称模式忽略它们。
测试开始时所需的文件应该在源代码管理中。理想情况下,您希望测试创建的临时文件位于一个目录中,这样您就可以忽略整个目录。如果那不可能,则将每个文件添加到 .gitignore 文件。实际上,除了测试结果之外,您的规范应该自行清理,其中应该包括删除在测试期间创建的临时文件。
Ruby 有 creating temp files and directories and cleaning them up for you 的设施,使用它。它会为当前环境选择正确的临时文件位置,可能在你的存储库之外,你再也不用担心它们了。虽然测试的经验法则是不要在源目录之外写入文件,但使用全局临时目录是可以接受且可靠的。
否则,在您的项目中创建一个临时目录(可能在您的测试目录中)并将所有临时文件放在那里。设置 .gitignore
以忽略该目录。这具有将测试工件完全保存在源目录中的 轻微 优势,并且您可以更轻松地找到它们以进行调试。您仍然应该使用 Ruby 的临时文件 class 来管理它们,只需告诉它使用您的临时目录,处理清理并确保您的临时名称是唯一的以允许并行测试。
我建议只使用 Tempfile.new
吐出来的任何东西。记住设置特殊测试临时目录是您不需要的另一部分。