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

Rails,Capybara:在rake资源之后测试不再工作:预编译

Rails是一种基于Ruby语言的开发框架,用于快速构建Web应用程序。它遵循了MVC(Model-View-Controller)架构模式,提供了许多便捷的工具和库,使开发人员能够高效地开发和部署应用程序。

Capybara是一个用于编写Web应用程序集成测试的Ruby库。它提供了一组简洁的API,可以模拟用户与Web应用程序进行交互,例如点击链接、填写表单等操作。通过使用Capybara,开发人员可以编写自动化的端到端测试,以确保应用程序的功能和用户体验的一致性。

在使用Rails开发应用程序时,通常会使用rake任务来执行各种开发和部署任务,例如数据库迁移、资源预编译等。然而,有时候在执行完rake任务后,Capybara的测试可能会出现无法正常工作的情况。

这种问题通常是由于资源预编译导致的。Rails在部署应用程序时会将静态资源(如CSS、JavaScript文件)预编译成可供生产环境使用的形式。而在开发环境中,这些静态资源的预编译是由rake任务完成的。当执行完资源预编译后,Capybara的测试可能无法正确加载这些预编译的资源,从而导致测试失败。

为了解决这个问题,可以尝试在执行Capybara测试之前,手动运行一次资源预编译的rake任务。可以使用以下命令来执行资源预编译:

代码语言:txt
复制
RAILS_ENV=test bundle exec rake assets:precompile

这将在测试环境中预编译静态资源,确保Capybara测试能够正常加载这些资源。

另外,还可以考虑在Capybara的测试配置中禁用资源预编译。可以在config/environments/test.rb文件中添加以下配置:

代码语言:ruby
复制
config.assets.compile = false

这将告诉Rails在测试环境中不进行资源预编译,从而避免测试失败的问题。

总结起来,解决在rake资源之后Capybara测试不再工作的问题,可以通过手动运行资源预编译的rake任务或禁用资源预编译来解决。这样可以确保Capybara测试能够正常加载静态资源并顺利执行。

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

相关·内容

Ruby 应用容器封装踩坑记录(Lobsters)

一般的 Web 应用封装都会经历下下几个阶段,整合源代码,安装应用依赖和环境,进行程序/产物的编译,调整权限和目录结构,进行测试,完成后对镜像打标签进行版本管理。 这次的踩坑记录亦是如此。...rake aborted! 根据线索,我们 Dockerfile 中添加一条命令,强制执行任务的 rake 软件版本。...除了第三回合我们有指定 rake 版本外,其实最初的镜像也有声明 rake 的版本。所以我们先尝试将两条声明都删除,进行镜像构建测试: ......但是实际测试,不论是 Gemfile.lock 中声明最初的2.0.2,还是当前最新的 2.1.4 ,都无济于事。...+ gem install rake; \ 构建过程中添加一句使用 root 用户安装 rake 至全局的命令,再次构建镜像。

7.4K10

Ruby 应用容器封装踩坑记录(Lobsters)

一般的 Web 应用封装都会经历下下几个阶段,整合源代码,安装应用依赖和环境,进行程序/产物的编译,调整权限和目录结构,进行测试,完成后对镜像打标签进行版本管理。 这次的踩坑记录亦是如此。...除了第三回合我们有指定 rake 版本外,其实最初的镜像也有声明 rake 的版本。所以我们先尝试将两条声明都删除,进行镜像构建测试: ......但是实际测试,不论是 Gemfile.lock 中声明最初的2.0.2,还是当前最新的 2.1.4 ,都无济于事。...+ gem install rake; \ 构建过程中添加一句使用 root 用户安装 rake 至全局的命令,再次构建镜像。...最后 Ruby 的构建过程是真的慢,希望有朝一日,它能够学习 Node / NPM / YARN 将一些固定环境下的编译文件进行预编译,在用户进行初始化安装的时候,能够直接提供产物,为开发者行方便,开发者也会为你提供更多有价值的回馈

4.8K00

如何部署Mina:入门教程

RAKE - Ruby Make Web开发人员,程序员以及任何与科学或计算机打交道的人都应该很好地理解他们使用的工具。Mina的案例中,RAKE最为关键。 但是,什么是RAKE?...这些文件和Make作为工具用于构建应用程序(即编译源代码并生成可执行二进制文件)。 Rake可以称为构建语言。 它用于以结构化方式定义任务,以便在命令行中执行。...本节中,我们将首先在CentOS 6系统上创建Ruby环境。之后,您将能够使用Mina自动执行部署服务器。 准备系统 为了安装Ruby,我们首先需要准备最小的CentOS服务器。...首先需要一个JavaScript解释器才能工作,我们还需要设置Node.js。...root ALL =(ALL)ALL之后追加以下内容: deployer ALL=(ALL) ALL /etc/sudoers文件的部分现在应如下所示: .. ​ ## The COMMANDS section

4.5K40

使用spring提高rails开发效率

rails开发者都有着这样类似的经历: pair写了一个测试 运行测试 等待 该我来编写产品代码 运行测试 等待 代码有bug 测试失败 修复测试 运行测试 等待 测试通过,yeah!...做为一个有追求的程序员,我当然不愿意把宝贵的工作时间浪费在这无谓的等待中去 :-)。 ###现有方案 有追求的程序员还是大多数,google之后才发现已经有人尝试解决这个问题,如spork,zeus。...他们的原理都是预先把rails环境启动起来,后面在运行测试,执行rake task时从这个启动好的进程fork一个进程,在这个进程中执行操作。...###安装 建议把spring安装到rvm的global gemset中去,这样就可以多个project使用spring 安装命令非常简单: gem install spring ###使用 执行测试的命令也非常简单...: spring rspec 当第一次使用spring运行测试rake taks, db migration时,spring会自动在后台load rails 环境,因此执行速度也很慢,但是当再次执行时

3.5K60

Ansible和Docker的作用和用法

这种更简单的操作模式让我把精力集中如何将我的技术设施私有化,提高了我的工作效率。与 Unix 的模式一样,Ansible 提供大量功能简单的模块,我们可以组合这些模块,达到不同的工作要求。...除了 Python 和 SSH,Ansible 不再依赖其他软件,它的远端主机上不需要部署代理,也不会留下任何运行痕迹。...&& cd /terrabox && export RAILS_ENV=production && rake db:create db:migrate && bundle exec unicorn -...测试环节结束后马上就执行/run-terrabox命令进行编译。...Docker 容器内运行 Rails 应用 没有本地 Docker 镜像,从零开始部署一个中级规模的 Rails 应用大概需要100个 gems,进行100次整体测试使用2个核心实例和2GB内存的情况下

2.1K20

Ubuntu 上安装 Discourse 开发环境

本文章假设你还没有 Ubuntu 环境中安装 Ruby/Rails/Postgres/Redis 环境,让我们开始开发环境的配置吧!... 有关在 Ubuntu 低于 20.04版本上安装 Discourse 测试环境根据我们进行测试的经验来看,Ubuntu 22 的版本中可能有无法编译和包找不到的情况,我们还只 20.04 上完成本地开发环境的设置...安装 Discourse 依赖作为一般的用户,可以控制台中运行下面的命令: this script 。上面的命令将会帮助你本地的开发环境中快速设置 Rails。...尝试运行下面的命令:bundle exec rake autospec你的项目应该会通过所有的测试。这个测试非常耗时,可以不做这个的,要不然估计几个小时就出去了。...创建一个新的 Admin 账号在对开发环境进行登录之前,需要创建一个管理员账号,运行下面的命令进行创建:RAILS_ENV=development bundle exec rake admin:create

2.5K00

Ubuntu 上安装 Discourse 开发环境

本文章假设你还没有 Ubuntu 环境中安装 Ruby/Rails/Postgres/Redis 环境,让我们开始开发环境的配置吧!... 有关在 Ubuntu 低于 20.04版本上安装 Discourse 测试环境 根据我们进行测试的经验来看,Ubuntu 22 的版本中可能有无法编译和包找不到的情况,我们还只 20.04 上完成本地开发环境的设置...安装 Discourse 依赖 作为一般的用户,可以控制台中运行下面的命令: this script 。上面的命令将会帮助你本地的开发环境中快速设置 Rails。...db:create bundle exec rake db:migrate RAILS_ENV=test bundle exec rake db:create db:migrate 如果在运行的时候出现错误...尝试运行下面的命令: bundle exec rake autospec 你的项目应该会通过所有的测试。 这个测试非常耗时,可以不做这个的,要不然估计几个小时就出去了。

2.6K50

开发项目管理工具redmine 原

基于上面的多种特性,项目管理工作中,如任务分配、任务跟踪、项目权限管理等等带来很大的便捷性,使得工作进度、质量更加可控。...更重要的一点是日常工作中所有工作内容的申请和交接都通过Redmine和email来操作,这样所有工作的开展都有据可依,也符合等保3的考核要求。...a http://mirrors.aliyun.com/rubygems/ # 配置阿里的源 ## 安装 $ gem install rake -v 12.0.0 $ gem install rails...数据初始化: $ RAILS_ENV=production bundle exec rake redmine:load_default_data ## 该过程会以交互形式让用户选择语言环境变量,也可以执行该命令时直接指定环境变量...192.168.228.130 (注意,测试环境使用该方法测试的前提是保证该虚拟主机为当前nginx服务器的默认虚拟主机,否则需要配置独立域名),结果如下: ?

10K40

如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

本教程将帮助您部署Ruby Rails应用程序中的生产环境,使用PostgreSQL作为数据库,Ubuntu 14.04上使用Unicorn和Nginx。...此外,本教程未介绍如何设置开发或测试环境。如果您需要帮助,请参考腾讯云+社区中有关PostgreSQL with Rails的教程中的示例进行操作。...=production rake db:migrate 预编译资产 此时,应用程序应该可以工作,但您需要预编译其资产,以便该程序可以加载任何图像,CSS和脚本。...为此,请运行以下命令: RAILS_ENV=production rake assets:precompile 测试应用 要测试您的应用程序是否有效,您可以运行生产环境,并将其绑定到服务器的公共IP地址...//server_public_IP:3000/tasks 如果它正常工作,您应该看到此页面: 返回到Rails服务器,然后按Ctrl-c来停止应用程序。

4.2K00

安装并配置gitlab

企业版是要钱的、社区版是免费的,不但能建立免费的私有仓库而且没有数量上限,参与人员也没有数量限制,还能设置成员的权限,甚至细致到具体某条分支的权限,以及强大的工作流等等。...配置完成以后 测试邮箱是否配置成功 gitlab-rails console  //进入控制台 irb(main):002:0>Notify.test_email('xx@qq.com', '邮件标题'...常用命令 # 查看版本 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 检查gitlab gitlab-rake gitlab:check...SANITIZE=true --trace # 实时查看日志 gitlab-ctl tail # 数据库关系升级 gitlab-rake db:migrate # 清理redis缓存 gitlab-rake...# 指定文件名的格式类似:1499242399_2017_07_05_9.2.6,程序会自动文件名后补 上:“_gitlab_backup.tar” # 一定按这样的格式指定,否则会出现 The

2.7K20

本地运行“李开复”的零一万物 34B 大模型

但是如果你是 Bare Metal 中运行,记得解决 nvcc 的安装,保持和显卡驱动大版本一致,下文中编译 llama.cpp 需要 nvcc 是可用的:# nvcc --versionnvcc:...-34B-GGUF └── nous-capybara-34b.Q5_K_M.gguf完成了模型的下载之后,我们就可以进行最后一项准备工作了。...编译使用 GPU 的 llama.cpp解决完毕运行环境的问题后,我们需要手动下载 llama.cpp 的代码,并做一些目录准备:# 下载代码git clone https://github.com/...当然,因为我们使用了“资源保守策略”,启动程序的时候,只将模型的 32 层放在了显卡里,所以模型输出内容的速度只有 3.4 tokens/sec 左右。...在上面的测试中,我们选择的是将模型的一半放在显卡里,通过观察我们可以得出模型在运行之后,至少会额外占据 1GB 的显存,所以我们可以增大 --n-gpu-layers 到合理的程度。

90810

ROR学习笔记(1):Rails 2快速创建GRUD应用

,作者写书的环境是rails 1.x,现在rails的版本已经更新至2.3.5,很多东西已经变了,如果参考第二版的书上一步步来做的话,根本做不下去。...目前该书已经出了第三版,只不过国内暂时尚无翻译版本,http://hlee.javaeye.com/blog/363605 这里可以下载该书英文电子版) 以下操作命令,均在windows 命令行模式下完成  1.进入工作目录...rails -d mysql depot 3.编辑database.yml,修改username与password,同时mysql中把database.yml对应的数据库建好(注意编码建议选择为utf8...) 注意:mysql不要安装最新的5.1版本,建议用5.0版本,否则rake在做数据库迁移时,可能会出现问题. 4.测试是否能跑起来 D:\MyDoc\Ror\depot>ruby script/server...image_url:string 这里将创建一个product实体类,里面有三个成员title,description,image_url 6.将实体同步到数据库 D:\MyDoc\Ror\depot>rake

2K90

使用 YAML 文件配置 Jenkins 流水线

工作项目上的所有人都应该能修改它,如果他们希望执行 `npm install` 或 `yarn install` ### 安装Jenkins和Docker 安装 Jenkins 非常简单,直接从官方教程选择一种方式安装...,执行 Docker 构建的清理工作: ```shell #!...### Jenkinsfile + Shared Libraries = WoloxCI 经过调研 Jenkins 和流水线之后,我们发现可以通过扩展共享库(shared libraries)来实现。...由于我们有不同语言的项目,我们使用 Docker 来构建测试环境。WoloxCI 假设有一个 Dockerfile 要构建,并将在容器内运行所有指定的命令。...### 总结 目前,WoloxCI 还在我们所有项目中一小部分项目进行测试。这让有权限访问它的人通过 YAML 文件更改构建步骤。这是对我们 CI 工作流程来说是一个重大改进。

4.6K40

架构之美:教你如何分析一个接口?

有了主线之后,我们就要开始从中了解接口的风格。...Article.find_by_title_and_author("foo", "bar") 从功能的角度说,这样的查询功能上是完全一样的,但显然Rails程序员和Java程序员的工作量是天差地别的,...那样不声明方法就去调用,因为这是由Ruby的动态语言特性支持的,而Java这种编译型语言是做不到的。...使用Rails,这就是一个命令: $ rails new article-app 这个命令执行的结果生成的不仅仅是源码,还有一些鼓励你去做的最佳实践,比如: 它选择了Rake作为自动化管理的工具,生成了对应的...执行下面的命令,它会帮你生成一个controller类,生成对应的页面,甚至包括了对应的测试,这同样是一个鼓励测试的最佳实践。

2.2K20

RubyMine 2022 Mac(Ruby代码编辑器) 中文版

JetBrains RubyMine 2022 for Mac是应用在Mac上的一款强大的Ruby代码编辑器,可以通过可定制的配色方案,键盘方案以及高效开发所需的所有外观设置,智能导航一键导航到声明,超级方法,测试...代码片段您的代码中输入最常用模式结构的实时模板。使用预定义的片段并创建自己的片段。智能编辑通过代码评论,扩展/缩小选择,内联正则表达式检查,同步标签编辑等功能提高工作效率。...2.智能代码导航智能导航一键导航到声明,超级方法,测试,用法,实现等等。Rails应用程序中快速切换模型,视图和控制器。高级搜索选项跳转到任何类,文件或符号:按模式和文件夹过滤,或使用正则表达式。...3.Ruby工具的使用集成的Rake,Bundler等等运行Rails生成器和服务器,Rake和Bundler任务。使用模型/类/ gem依赖关系图分析项目结构。...内置控制台通过使用集成的Rails,IRB,SSH控制台和本地终端,不离开IDE的情况下运行脚本和应用程序。

2K10
领券