我想开始使用 qUnit 在我的 Rails 应用程序中测试 JavaScript,我想知道如何将测试 JavaScript 和测试运行程序 HTML 页面保持在版本控制之下(当然我使用的是 Git),但在何时将它们远离生产服务器我使用 Capistrano 部署应用程序。我的第一个想法是让 Capistrano 像往常一样发送所有代码,包括测试文件,并编写一个任务以在部署过程结束时删除它们。不过,这似乎是一种黑客行为。有没有更简洁的方法来告诉 Capistrano 在部署时忽略存储库的某些部分?
问问题
4173 次
3 回答
7
有很多方法可以实现这一点,您可以像 VonC 建议的那样将测试保存在应用程序的测试分支中,但这意味着您将在主分支中进行所有更改,然后将其同步到您的测试分支。(并非没有优点,但有时会很痛苦)
您可以将 .gitignore 文件用于您的目录。
您添加到此的任何文件都不会添加到您的存储库中。由于 capistrano 只是从您的存储库中提取和发布,因此不包含这些文件将使它们远离您的生产服务器。
最后但同样重要的是,如果您希望主存储库中的测试文件用于版本控制,您可以在 config/deploy.rb 文件中添加一个配方。例如:
desc "Remove Test Files"
task :remove_test_files , :roles => :web do
sudo %{rm -f #{current_path}/public/javascripts/testfile.js}
sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js}
end
after 'deploy:remove_test_files'
并指定您要删除的文件,这将在您部署时删除您想要的任何文件。:)
以上任何一项都可以。选择适合您的方法。
于 2010-04-01T15:39:16.733 回答
5
自 2013 年 8 月 30 日起,您可以简单地创建一个.gitattributes
文件和export-ignore
您选择的文件/文件夹。
features/ export-ignore
spec/ export-ignore
于 2014-11-18T00:52:48.197 回答
0
您可以在测试分支中进行这些测试(在任何测试之前合并主分支)
这样,当您要求 Capistrano 部署主分支上的内容时,不会包含任何类型的测试。
于 2010-04-01T06:00:55.700 回答