草庐IT

rake-test

全部标签

ruby-on-rails - 出现错误 - 类型 "json"不存在 - 在 rake db 迁移期间在 Postgresql 中

我最近将一个项目克隆到我的本地Ubuntu机器上,因为我在远程,并且在rakedbmigrate时,我收到以下错误:PG::UndefinedObject:ERROR:type"json"doesnotexist我的表中的几列是:add_column:table,:column,:json此迁移适用于工作中的Mac,但不适用于此处。我已尝试升级到PostgreSQL9.3.4,但问题仍然存在。我也尝试了sudoapt-getupgradepostgresql,但问题仍然存在。Ruby版本为2.1.0Rails版本是4.0.3 最佳答案

ruby - 在 RSpec 中调用相同的 rake 任务两次

我正在尝试使用rspec测试rake任务,为此我需要调用它两次,但是它只被调用一次。it'firsttest'doRake::Task['my_rake_task'].invoke#raketaskwasprocessedendit'secondtest'doRake::Task['my_rake_task'].invoke#raketaskwasNOTprocessedend 最佳答案 如果rake任务已经被调用过,除非你调用它,否则它不会再次运行:@rake[@task_name].reenable或调用它@rake[@task

ruby-on-rails - rails : Why do I get "warning: already initialized constant JSON::VERSION" when running rake cucumber?

我刚刚设置了一个LinuxMintbox,用于使用rvm进行Rails开发。我继续生成了一个Rails5应用程序,设置了mysql连接,添加了cucumber-railsgem然后尝试运行:rakecucumber出于某种原因,我遇到了:/usr/bin/ruby2.3-Sbundleexeccucumber--profiledefault/usr/lib/ruby/vendor_ruby/json/version.rb:3:warning:alreadyinitializedconstantJSON::VERSION/var/lib/gems/2.3.0/gems/json-1.8.

ruby-on-rails - rake 检查是否已经在运行

是否有可能以某种方式仅在尚未运行的情况下执行rake任务,我想使用cron来执行一些rake任务,但是如果之前的调用没有完成,rake任务不应该开始谢谢 最佳答案 我使用lockrun防止cron任务多次运行(这仅在通过相同的lockrun调用调用命令时有效,因此如果您需要保护免受各种调用路径的影响,则需要寻找其他方法).在您的crontab中,您可以这样调用它:*/5****/usr/local/bin/lockrun--lockfile=/var/run/this_task.lockrun--cd/my/path&&RAILS_

ruby - 如何从 rake 任务启动 IRB 控制台?

我正在尝试编写一个rake任务来设置一个镜像我的项目的环境。task:environmentdorequire'rubygems'require'sequel'#require'my_projects_special_files'endtask:foo=>[:environment]dorequire'irb'IRB.startend导致irb提示“foo”不存在(任务名称)10:28:01:irb_test>>rakefoo--trace(in/Users/mwlang/projects/personal/rake/irb_test)**Invokefoo(first_time)**

ruby - 我可以覆盖任务 :environment in test_helper. rb 来测试 rake 任务吗?

我在Rakefile中有一系列rake任务,我想将其作为我的规范等的一部分进行测试。每个任务都以以下形式定义:task:do_somthing=>:environmentdo#Dosomethingwiththedatabasehereend:environment任务设置ActiveRecord/DataMapper数据库连接和类。我没有将其用作Rails的一部分,但我有一系列测试,我喜欢将其作为BDD的一部分运行。此片段说明了我如何尝试测试rake任务。defsetup@rake=Rake::Application.newRake.application=@rakeloadFile

ruby-on-rails - 如何让 Rake 任务在我的 Sinantra 应用程序/环境下运行?

我正在使用Sinatra,我想设置Rails具有的一些方便的rake任务,特别是rakedb:seed。我的第一遍是这样的:namespace:dbdodesc'Loadtheseeddatafromdb/seeds.rb'task:seeddoseed_file=File.join(File.dirname(__FILE__),'db','seeds.rb')system("rackshracksh是一个模仿Rails控制台的gem。所以我只是将种子文件中的代码直接输入其中。它有效,但显然并不理想。我想做的是创建一个环境任务,允许命令在Sinanta应用程序/环境下运行,如下所示:t

ruby - rake 将参数传递给相关任务

这是我目前运行rak相关任务的方式task:test=>[:prepare_testdir,:run_tests]目前这两个依赖任务没有参数。但是我需要向其中一项任务添加参数。它应该像在命令行上一样运行rakeprepare_testdir[mydir]我如何将这个新参数传递给这个task:test=>[:prepare_testdir,:run_tests]我试过了task:test=>[:prepare_testdir[mydir],:run_tests]和task:test=>[:prepare_testdir['mydir'],:run_tests]两者都不工作。提前致谢

ruby - 任务依赖性是否总是以特定顺序与 rake 一起运行?

我有以下示例,它基于我希望我的rakefile使用的结构:task:defaultdoputs'Tasksyoucanrun:dev,stage,prod'endtask:dev=>[:init,:devrun,:clean]task:devrundoputs'Devstuff'endtask:stage=>[:init,:stagerun,:clean]task:stagerundoputs'Stagingstuff'endtask:prod=>[:init,:prodrun,:clean]task:prodrundoputs'Productionstuff'endtask:init

ruby - 如何从另一个目录运行 Rails/Rake?

如果不进入我的Rails应用程序的根目录,我该如何为该应用程序执行Rails或Rake命令。我试过:bundleexecrakemy_tasks:do_stuffBUNDLE_GEMFILE=/PATH/TO/RAILS_APP/Gemfile在其他组合中,无济于事。[更新]问题实际上有两个方面,bundle不知道gemfile在哪里,rake不知道要运行什么。使用bundler:BUNDLE_GEMFILE=/PATH/TO/RAILS_APP/Gemfilebundleexec...请注意,BUNDLE_GEMFILE必须位于“bundleexec”之前。使用rake:rake-f