【问题标题】:Share testing data between 2 rails applications在 2 个 rails 应用程序之间共享测试数据
【发布时间】:2016-10-27 15:52:15
【问题描述】:

在我们公司的项目中,我们有 2 个 Rails 项目:A 和 B 共享相同的数据库,但模型不同。我的老板不允许我将模型提取到两个项目的 gem / rails 引擎中,因为我是新成员,而且我们的生产需要承担很多风险。所以我必须保持现状。我已经研究了很多东西,但目前仍然没有解决方案。让我总结一下:

Project A 通常用于创建数据并将数据保存到数据库中,以便 A 中的模型始终是最新的。项目 B 用于加载数据,因此项目 B 没有所有模型作为 A,并且 B 中的某些模型缺少关联。我的任务是为项目 B 添加测试。这是我的解决方案:

首先,我为两个项目共享一个数据库测试。

其次,在项目 A 中,我设置 Factory Girl 来创建测试数据。

所以问题是,从项目 B 中,我如何调用或触发项目 A 来运行 A 的 Factory Girl 以创建测试数据,以便项目 B 可以加载该数据并对其进行验证?

【问题讨论】:

    标签: ruby-on-rails ruby testing integration-testing factory-bot


    【解决方案1】:

    您可以编写 rake 任务,这些任务基本上在您的应用程序中运行一次性脚本,并且可以从命令行触发。

    rails g task my_task_name
    

    这将创建一个文件lib/tasks/my_task_name.rake。编写 rake 任务非常简单:

    namespace :my_namespace do
      task :my_app => :environment do
        # create some db records here
      end
    end
    

    你会打电话给rake my_namespace:my_app

    使用命名空间是可选的,但=> :environment 部分很重要——这就是从您的rails 应用程序加载代码的原因。

    当您运行 rake 任务时,将在您所在的任何 repo 的 lib/tasks 文件夹中查找。

    【讨论】:

    • 我假设您的建议是在项目 A 中创建 rake 任务,以便将数据填充到测试数据库。但是,如何从 B 端调用 A 的 rake 任务?
    • 你能举个例子从B项目中调用A的rake吗?在这种情况下,我仍然找不到示例。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多