首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在rspec测试中有创建并存储在数据库中的项,但应用程序看不到它已存储

在rspec测试中,创建并存储在数据库中的项在应用程序中看不到的原因可能是由于测试环境和开发环境之间的隔离性所导致的。

在rspec测试中,通常会使用一个独立的数据库来运行测试,这个数据库与开发环境中使用的数据库是分离的。当你在测试中创建并存储一个项时,它实际上是存储在测试数据库中,而不是开发环境中的数据库。

这种隔离性是为了确保测试的独立性和可重复性。测试数据库的目的是为了提供一个干净的环境,以便每次运行测试时都能从一个空白状态开始。这样可以避免测试之间的相互影响,同时也可以确保测试结果的可靠性。

因此,即使你在测试中创建并存储了一个项,应用程序在运行时是无法看到它的,因为它存储在测试数据库中,而应用程序实际上是连接到开发环境中的数据库。

如果你希望应用程序能够看到测试中创建并存储的项,你可以考虑以下几种方法:

  1. 使用测试数据库的数据同步功能:某些测试框架提供了将测试数据库的数据同步到开发环境数据库的功能。通过配置测试框架,你可以将测试数据库中的数据同步到开发环境中,这样应用程序就能够看到测试中创建的项了。
  2. 手动复制数据:你可以手动将测试数据库中的数据复制到开发环境中的数据库。这可以通过导出测试数据库的数据,然后导入到开发环境中的数据库来实现。

需要注意的是,将测试数据同步到开发环境中可能会引入一些风险,因为测试数据可能包含一些不符合开发环境要求的数据。因此,在进行数据同步之前,建议先进行数据清理和验证,以确保数据的一致性和正确性。

总结起来,rspec测试中创建并存储在数据库中的项在应用程序中看不到是由于测试环境和开发环境的隔离性所导致的。如果你需要应用程序能够看到测试中创建的项,可以考虑使用测试数据库的数据同步功能或手动复制数据到开发环境中的数据库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Effective Testing with RSpec 3(介绍)

我们测试再次被打破!”“为什么套件需要这么长时间才能运行?”“无论如何,我们从这些测试获得了什么价值?” 多年过去了,技术发生了变化,关于自动测试抱怨是一样。...RSpec每个方面都旨在解决开发人员在野外遇到一些问题。 有了,您可以放心地构建Ruby应用程序。...您可以放心地进行更改,您测试套件会在您破坏某些内容时通知您。 不过,TDD这个词有点用词不当。尽管名称中有“test”这个词,TDD不仅仅是关于你测试。这是关于他们为您设计实现无畏改进方式。...作为一个测试框架,RSpec非常适合BDD工作流程。 RSpec帮助您“正确理解”准确指出您在测试意思。...虽然您将在几个章节构建Web服务,但我们并不认为您已经是Web开发人员。 很多人使用RSpec测试命令行应用程序,GUI应用程序等。 我们将在讨论过程解释一些Web开发概念。

2K20

Effective Testing with RSpec 3 (第一部分:入门)

欢迎来到RSpec本书这一部分,你将在编写前几个工作测试时熟悉该框架。 首先,你将安装RSpec编写你前几个specs - RSpec测试术语。...一测试将至少提供以下一好处: •设计指导:帮助你将所有这些奇妙想法提炼成可运行,可维护代码 •安全网:客户开始之前代码中发现错误 •文档:捕获工作系统行为以帮助其维护人员 当你按照本书中示例进行操作时...既然RSpec系统上,我们快速检查以确保准备就绪: $ rspec --version RSpec 3.6 - rspec-core 3.6.0 - rspec-expectations...组,示例和期望 此文件定义了您测试RSpec称为您规范,是规范缩写(因为它们指定了代码所需行为)。 外部RSpec.describe块创建一个示例组。...示例,您遵循Arrange / Act / Assert模式:设置一个对象,用它做一些事情,检查它是否按照您想要方式运行.2在这里,您创建一个三明治,询问味道,验证 结果很美味。

2K30
  • Step by Step!Kubernetes持续部署指南

    该项目包含部署所需所有内容,仍需要一些组件。 准备工作 开始操作之前,你需要登录Github和Semaphore账号。...首先要做是fork存储库。 ? Fork存储库 在这篇文章fork我们将使用演示应用程序。...使用Semaphore测试 持续集成让测试变得有趣并且高效。一个完善CI 流水线能够创建一个快速反馈回路以造成任何损失之前发现错误。我们项目附带一些现成测试。...打开位于.semaphore/semaphore.yml初始流水线文件,快速查看。这个流水线描述了Semaphore构建和测试应用程序所应遵循所有步骤。它从版本和名称开始。...请注意我们重复使用了checkout和cache代码以将初始文件放入job。最后一个命令用于启动RSpec测试套件。

    83720

    用 GitLab 做 CICD 是什么感觉,太强了!!

    涉及到每次小迭代中就不断地构建、测试和部署代码更改,从而减少了基于已经存在bug或失败先前版本开发新代码机会。...Continuous Integration(持续集成) 假设一个应用程序,其代码存储GitLabGit仓库。开发人员每天都要多次推送代码更改。...这种做法称为持续集成,对于提交给应用程序(甚至是开发分支)每项更改,都会自动连续进行构建和测试,以确保所引入更改通过你为应用程序建立所有测试,准则和代码合规性标准。...应用程序不仅会在推送到代码库每次代码更改时进行构建和测试,而且,尽管部署是手动触发作为一个附加步骤,它也可以连续部署。...在这个文件,你可以定义要运行脚本,定义包含依赖,选择要按顺序运行命令和要并行运行命令,定义要在何处部署应用程序,以及指定是否 要自动运行脚本或手动触发脚本。

    9.6K43

    GitLab CI CD管道配置参考 .gitlab-ci.yml文件定义字段

    该配置是及时快照,保留在数据库。 .gitlab-ci.yml 创建下一个管道之前,对引用配置任何更改都不会反映在GitLab。...请注意,在上面的示例: variables部分合并,URL: "http://my-url.internal" 已被覆盖URL: "http://docker-url.internal"。...changes 根据更改文件管道添加或排除作业。与相同only:changes。 exists 根据特定文件存在在管道添加或排除作业。 顺序评估规则,直到找到匹配。...如果Dockerfile更改,则将该作业作为手动作业添加到管道允许管道继续运行,即使未触发该作业(allow_failure: true)。...README.md存储根目录文件更改。

    22.2K20

    GitLabCI系列之流水线语法第五部分

    要仅在作业失败时上传工件: job: artifacts: when: on_failure ---- artifacts:expire_in 制品有效期,从上传和存储到GitLab时间开始算起...GitLabUI显示这些报告。注意:无论作业结果(成功或失败),都将收集测试报告。...artifacts:reports:junit 收集junit单元测试报告,收集JUnit报告将作为工件上传到GitLab,并将自动显示合并请求。...工具导出到多个XML文件,则可以一个作业中指定多个测试报告路径,它们将被自动串联到一个文件....定义一个空数组将跳过下载该作业任何工件不会考虑先前作业状态,因此,如果失败或是未运行手动作业,则不会发生错误。 如果设置为依赖作业工件已过期或删除,那么依赖作业将失败。 ?

    3.4K20

    前沿观察 | Redis Streams原生数据结构科普

    点击上方蓝字每天学习数据库 Redis 5.0以引入新Redis数据结构“Streams”引起了社区极大兴趣。 不久之后,我想进行社区调查,与有生产用例用户交谈,撰写博客。...如果我为了切换到另一组字段删除,又会使格式变得不太灵活。 3. 偏移只是文件字节偏移量:如果我们更改文件结构,则偏移量将是错误,因此这里没有实际主要ID概念。...当您进一步对应用程序数据建模时,要使用Redis作为主要工具,你会立即意识到需要一种方法来跟踪在给定网球俱乐部游戏。...匹配唯一标识符:streamID。 2. 无需创建对象即可识别匹配。 3. 范围查询免费分页匹配,或检查在过去某个给定时刻所进行匹配。...如果我可以大约18 MB内存存储100万个条目,我可以180 MB存储1000万个,1.8 GB存储1亿个。只有18 GB内存,我可以拥有10亿个项目。

    63110

    持续测试基础设施

    部署前 单元测试 Terraform ,通常需要人工来验证 terraform plan 结果,但是只能覆盖当前 state 和配置参数下结果。...比如服务可以被成功访问、数据库确实被创建出来配有正确参数,密钥管理器中被保存下来数据库密钥我们可以成功连接到数据库等等。...与应用测试一样,任何一条失败测试都应让我们 Pipeline 变红,向团队告警。确保只有在前一个环境被验证通过后,我们才向下一个环境前进。 一个测试范例 我们以 Ruby/RSpec 为例。...db_spec.rb: 用来验证 DB 中进行设置,比如支持动态数据库凭证所在 DB 创建资源,DB extension 被正确启用。...vault_spec.rb:用来验证 Vault 创建资源、比如 master 凭证存储、支持动态数据库凭证所需资源。

    22620

    配置管理

    首先,它要保留每个文件所有版本历史信息,使之易于查找。其次,让分布式团队(无论是空间上不在一起,还是不同时区)可以愉快地协作。 为什么要这样做呢?...你也许需要将这种虚拟环境配置信息作为某特定版本应用软件虚拟环境标准配置信息。 我们要把应用程序配置信息当做代码一样看待,恰当地管理进行测试。...要与系统运维和支持团队一同讨论,看看他们有什么样需求。 将应用程序配置与源代码保存在同一个存储,但要把配置值保存在别处。...应该总是通过自动化过程将配置从保存配置信息存储取出设置好,这样就能很容易地掌握不同环境配置信息了。...避免对配置信息过分设计,应尽可能简单。 确保测试覆盖到部署或安装时配置操作。检查应用程序所依赖其他服务是否有效,使用冒烟测试来诊断依赖于配置相关功能是否都能正常工作。

    61610

    最全DevOps工具集合,再也不怕选型了!

    5测试工具 测试阶段主要是检测内部质量,建立对部署构件信心。目前业内常用测试工具包括 JUnit、xUnit.net、Selenium、Jasmine 和 Cucumber。 ?...身上可以找到 Screw.Unit、JSSpec、JSpec 和 RSpec 等诸多单元测试框架影子。 Cucumber Cucumber 是一种支持行为驱动开发软件工具。...简单来说,AWS 允许你进行以下操作: 云中运行 Web 和应用程序服务器以托管动态网站 将所有文件安全地存储云中,可以从任何地方访问它们 使用托管数据库(如 MySQL、PostgreSQL、Oracle...Google Cloud Platform 提供了计算资源,用于 Web 上部署和运营应用程序专长是为个人和企业提供构建和运行软件场所,使用 Web 来连接软件用户。...Prometheus Prometheus 是用于事件监视和警报免费软件应用程序。它将实时指标记录在一个时间序列数据库,该数据库使用 HTTP 拉取模型构建,支持灵活查询和实时警报。

    2.5K10

    运维必备DevOps工具链大盘点

    Jasmine Jasmine 是一个开源 JavaScript 测试框架。目标是可以在任何支持 JavaScript 平台上运行,不干扰应用程序或 IDE,具有易于阅读语法。...深受其他单元测试框架影响,比如 Screw.Unit、JSSpec、JSpec 和 RSpec。 Cucumber Cucumber 是一个支持行为驱动开发工具。...简而言之,AWS 可以做以下这些事情: 云端运行 Web 和应用服务器,托管动态网站; 将所有文件安全地存储云端,这样你就可以从任何地方访问它们; 使用托管数据库,如 MySQL、PostgreSQL...提供一系列云服务,包括计算、分析、存储和网络。用户可以选择这些服务来开发和扩展新应用程序,或者公共云中运行现有的应用程序。...Prometheus Prometheus 是一款用于事件监控和警报免费应用程序。它在时间序列数据库记录实时指标,基于 HTTP 拉取模型,支持灵活查询和实时警报。

    1.4K20

    让开发者更轻松地使用Postgres添加AI应用

    [自动化]了从源数据创建嵌入过程,允许团队基本上设置好之后就不用管了。...取代了这些用于更新和同步排队系统。” 同步 ——“当你构建 AI 应用程序时,你必须编写代码来检查,‘好向量数据库,这些嵌入创建。’[但是]我关系数据库是否有正确元数据?...——Timescale 博文 “pgai 通过将嵌入存储 pgvector 数据类型使用 Python 和 PL/Python PostgreSQL 数据库与模型 API 交互来补充 pgvector...它可以现有关系数据上执行分类、摘要和数据增强任务。直接在数据库创建嵌入,跳过了将它们保存到数据库任务。...Sewrathan The New Stack 一篇文章还提到了基准测试,将它 pgvector 版本与 Pinecone 进行了比较,得出结论是,Postgres 扩展不仅成本低得多,而且比独立向量数据库更快

    7510

    必备DevOps工具链大盘点

    Jasmine Jasmine 是一个开源 JavaScript 测试框架。目标是可以在任何支持 JavaScript 平台上运行,不干扰应用程序或 IDE,具有易于阅读语法。...深受其他单元测试框架影响,比如 Screw.Unit、JSSpec、JSpec 和 RSpec。 Cucumber Cucumber 是一个支持行为驱动开发工具。...简而言之,AWS 可以做以下这些事情: 云端运行 Web 和应用服务器,托管动态网站; 将所有文件安全地存储云端,这样你就可以从任何地方访问它们; 使用托管数据库,如 MySQL、PostgreSQL...提供一系列云服务,包括计算、分析、存储和网络。用户可以选择这些服务来开发和扩展新应用程序,或者公共云中运行现有的应用程序。...Prometheus Prometheus 是一款用于事件监控和警报免费应用程序。它在时间序列数据库记录实时指标,基于 HTTP 拉取模型,支持灵活查询和实时警报。

    1.8K30

    自动化测试入门:是什么,流程,收益和工具

    示例:Quality center是测试管理工具,它将依次调用QTP来执行自动化脚本。脚本可以一台机器或一组机器执行。可以夜间执行,以节省时间。...他们之中有一些是 创建统一脚本,注释和代码缩进 适当异常处理-系统故障或应用程序异常行为时如何处理错误。 用户定义消息应进行编码或标准化,以供测试人员理解错误记录。...选择正确工具可能是一艰巨任务。...将测试存储为Ruby脚本,HTML和其他任何格式 提供了一个断言每个页面标题选项 支持Selenium user-extensions.js文件 允许脚本中间插入注释,以更好地理解和调试 QTP...为了简化测试创建和维护,使用关键字驱动测试概念。允许测试人员直接从应用程序构建测试用例。

    1.6K10

    干掉 Jenkins?顶级 DevOps 工具链大盘点

    Jasmine Jasmine 是一个开源 JavaScript 测试框架。目标是可以在任何支持 JavaScript 平台上运行,不干扰应用程序或 IDE,具有易于阅读语法。...深受其他单元测试框架影响,比如 Screw.Unit、JSSpec、JSpec 和 RSpec。 Cucumber Cucumber 是一个支持行为驱动开发工具。...简而言之,AWS 可以做以下这些事情: 云端运行 Web 和应用服务器,托管动态网站; 将所有文件安全地存储云端,这样你就可以从任何地方访问它们; 使用托管数据库,如 MySQL、PostgreSQL...提供一系列云服务,包括计算、分析、存储和网络。用户可以选择这些服务来开发和扩展新应用程序,或者公共云中运行现有的应用程序。...Prometheus Prometheus 是一款用于事件监控和警报免费应用程序。它在时间序列数据库记录实时指标,基于 HTTP 拉取模型,支持灵活查询和实时警报。

    1.1K20

    必备DevOps工具链大盘点

    目标是可以在任何支持 JavaScript 平台上运行,不干扰应用程序或 IDE,具有易于阅读语法。...深受其他单元测试框架影响,比如 Screw.Unit、JSSpec、JSpec 和 RSpec。 Cucumber Cucumber 是一个支持行为驱动开发工具。...简而言之,AWS 可以做以下这些事情: 云端运行 Web 和应用服务器,托管动态网站; 将所有文件安全地存储云端,这样你就可以从任何地方访问它们; 使用托管数据库,如 MySQL、PostgreSQL...微软 Azure 是微软创建云计算服务,通过微软数据中心构建、测试、部署和管理应用程序和服务。...Prometheus Prometheus 是一款用于事件监控和警报免费应用程序。它在时间序列数据库记录实时指标,基于 HTTP 拉取模型,支持灵活查询和实时警报。

    2.4K30

    GitLabCI系列之流水线语法第六部分

    暂时限制了作业needs:可能需要最大作业数分配,ci_dag_limit_needs功能标志启用(默认)分配10个,如果功能被禁用为50。...local 引入同一存储文件,使用相对于根目录完整路径进行引用,与配置文件同一分支上使用。 ci/localci.yml: 定义一个作业用于发布。...远程文件必须可以通过简单GET请求公开访问,因为不支持远程URL身份验证架构。...[微服务架构] 父子管道: 同一目中管道可以触发一组同时运行子管道,子管道仍然按照阶段顺序执行其每个作业,但是可以自由地继续执行各个阶段,而不必等待父管道无关作业完成。...strategy: depend将自身状态从触发管道合并到源作业。 ? 在下游项目中查看管道信息 ? 在此示例,一旦创建了下游管道,该staging将被标记为成功。

    3K30

    如何在Ubuntu上部署Elixir-Phoenix MySQL应用程序

    输出显示Mix检查了包之间兼容性,并从Hex存储获取了包及其依赖。如果此命令失败,请确保安装Hex正确修改了mix.exs。 使用Ecto和Mariaex,您可以设置Ecto存储库。...第二步 - 应用程序设置Ecto存储库 Phoenix应用程序通过名为Ecto数据库包装器访问数据库数据库包装器以项目中Elixir模块形式实现。...此外,必须包含用于初始化名为init函数传递给数据库适配器选项代码。 让我们lib/myproject目录名为repo.ex文件创建模块。...第六步 - 创建地址簿 为了演示如何部署数据库更改,让我们我们应用程序构建一个简单通讯录并将其部署到生产环境。 警告:此通讯录可以公开访问,任何人都可以访问和编辑。...它还指示我们将资源添加到路由器文件更新存储库。 您可以按照在输出中看到说明进行操作,通过这样做,您将在单个版本捆绑应用程序代码升级和数据库迁移。

    6.1K20

    用 GitLab 做 CICD 是什么感觉,太强了

    涉及到每次小迭代中就不断地构建、测试和部署代码更改,从而减少了基于已经存在 bug 或失败先前版本开发新代码机会。...Continuous Integration(持续集成),假设一个应用程序,其代码存储 GitLab Git 仓库。开发人员每天都要多次推送代码更改。...这种做法称为持续集成,对于提交给应用程序(甚至是开发分支)每项更改,都会自动连续进行构建和测试,以确保所引入更改通过你为应用程序建立所有测试,准则和代码合规性标准。...应用程序不仅会在推送到代码库每次代码更改时进行构建和测试,而且,尽管部署是手动触发作为一个附加步骤,它也可以连续部署。...在这个文件,你可以定义要运行脚本,定义包含依赖,选择要按顺序运行命令和要并行运行命令,定义要在何处部署应用程序,以及指定是否 要自动运行脚本或手动触发脚本。

    2.5K40
    领券