Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何测试rake任务、cron作业和_Ruby On Rails_Ruby On Rails 3_Rspec_Rake_Rspec2 - Fatal编程技术网

Ruby on rails 如何测试rake任务、cron作业和

Ruby on rails 如何测试rake任务、cron作业和,ruby-on-rails,ruby-on-rails-3,rspec,rake,rspec2,Ruby On Rails,Ruby On Rails 3,Rspec,Rake,Rspec2,我知道在Rails应用程序中,我可以使用Rspec为控制器和模型编写测试 但是: 如何测试一些rake任务?测试某个rake任务的好方法是什么 如何测试一个cron作业,它每天在固定时间运行特定的rake任务 在Rails应用程序开发中,Rspec是否也可以用于上述两种场景,或者是否有其他方法来实现这些测试 此外: 我有一个rake任务,它通过从另一个数据库获取数据并插入到应用数据库来更新Rails应用程序的数据库(当然,首先要清理应用程序数据库) 我想测试这些,如何做?也许这有助于: 要测试

我知道在Rails应用程序中,我可以使用Rspec为控制器和模型编写测试

但是:

  • 如何测试一些rake任务?测试某个rake任务的好方法是什么
  • 如何测试一个cron作业,它每天在固定时间运行特定的rake任务
  • 在Rails应用程序开发中,Rspec是否也可以用于上述两种场景,或者是否有其他方法来实现这些测试

    此外:

    我有一个rake任务,它通过从另一个数据库获取数据并插入到应用数据库来更新Rails应用程序的数据库(当然,首先要清理应用程序数据库)

    我想测试这些,如何做?

    也许这有助于:

    要测试cron作业,只需重定向到cron本身的日志文件,如:

    命令>/tmp/log.txt 2>&1


    通常,如果您打算在rake任务中执行db插入和其他操作,我会重新考虑并将其作为一个单独的ruby模块编写。我认为这种方式更加灵活。

    不要在rake任务中使用代码,而是执行以下操作:

    desc "Charge Customers Daily"
    task :charge_customers => :environment do
      CustomerCharges.create
    end
    
    这样,您就可以像往常一样,在customer\u charges\u spec.rb文件中编写rspec测试