2010-04-01 65 views
9

下我要开始与qUnit我的Rails应用测试JavaScript和我想知道如何保持测试JavaScript和测试运行HTML页面版本控制(当然,我使用的是Git),但是当我使用Capistrano部署应用程序时,请将它们放在生产服务器上。我的第一个想法是让Capistrano像往常一样发送包括测试文件在内的所有代码,并编写一个任务在部署过程结束时删除它们。虽然这看起来像是一种黑客。是否有一种更清晰的方式告诉Capistrano在部署时忽略存储库的某些部分?被部署Capistrano的排除文件,同时仍然版本控制使用Git

回答

0

你可以在一个测试分支这些测试(在其上的任何测试之前合并的主要分支)

这样一来,当你问Capistrano的部署什么是对你的主要分支,没有任何形式的测试被包括在内。

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' 

,并指定要删除的文件,这将删除您部署时所需的任何文件。 :)

上述任何会工作。选择适合你的方法。

+0

我没有看到你的时候答案。 +1 – VonC 2010-04-12 12:28:22

+0

谢谢冯。欣赏它。 – 2010-04-12 15:23:26

+0

@VonC&Dustin - 如果您的cap文件位于您的部署库中,但您不希望它们位于生产服务器上,您会如何处理?他们将部署到发布/ variable_directory_name – csi 2014-02-28 16:27:59