我正在编写一个Ruby脚本,设计用于从命令行运行。该脚本有一个相应的RSpec文件,用于验证其功能。文件夹结构为:
./main_script.rb
./spec/main_script_spec.rb
在顶级目录中运行rspec spec可以正常工作。来自<代码>的测试结果/显示spec/main\u script\u spec.rb文件。我希望避免每次更改主脚本文件或规范文件时都手动运行此操作。我所有的搜索结果都显示了像guard这样的东西(据我所知)都是为Rails应用程序设计的。
如何设置RSpec以监视脚本或规范更改并使用非Rails Ruby代码自动运行?
我过去使用了Guard,但现在我使用了rspec焦点功能和watch命令的组合。
这很简单,只需在要运行测试的块的描述之前添加一个f。因此它将成为fdescribe或fit块。这与添加标记相同:焦点=
然后我们可以使用焦点标签过滤规格:rspec-t focus
现在,为了保持使用焦点标签运行这些规格(每0.5秒),我们使用watch
命令将其称为:
watch -n 0.5 rspec -t focus
但这样输出就不会显示颜色。因此,我们需要与unbuffer一起使用。
sudo apt-get install expect
稍加定制:
watch -n 0.5 --color 'unbuffer bundle exec rspec -t focus'
由于键入这一切很烦人,我在我的〈代码〉~/上做了两个别名。bash\u别名文件(也可以使用bashrc):
alias focus="watch -n 0.5 --color 'unbuffer bundle exec rspec -t focus'"
alias focuss="bundle exec rspec -t focus"
现在我可以键入focus来保持运行,或者对于单焦点执行,我可以键入focus
Guard可以用于普通的旧ruby。我通常对Guard有麻烦,所以我喜欢使用watchr,另一个宝石。只需几行代码,您就可以告诉watchr监视文件的更改,并在它们更改时运行命令。
有关纯红宝石护卫的示例,请参阅shuhari宝石。
watchr-gem更新:这个gem似乎有问题,可能是ruby版本的问题
正如David所说,Guard可以用来监视各种各样的文件,并在修改这些文件时执行操作。它不必与Rails应用程序一起使用。我在过去使用guard设置了类似的东西。以下是我所做的:
将以下内容放入您的GEM文件中:
source 'https://rubygems.org'
gem 'guard'
gem 'guard-shell'
gem 'rspec'
gem 'rb-fsevent', '~> 0.9'
然后运行:
$bundle安装
使用以下工具在主目录中创建一个Guardfile:
$guard init
在
Guardfile
中,注释掉示例并添加以下内容:
guard :shell do
watch(%r{^*\.rb}) { `bundle exec rspec spec/` }
end
这告诉guard监视对目录中任何ruby文件的修改,并在更改时执行命令bundle exec rspec spec(反勾号用于在shell中执行命令)。
然后在当前目录中打开一个新的终端窗口并启动一个
Guard
服务器以开始查看文件:
$bundle-exec-guard
现在,当您修改目录中的ruby文件时,您的Rspec测试套件应该会自动运行。
当某个特定的文件更新后 Puppet 就该采取一些行动,这是一个非常常见的模式。 例如,在 rsync 配置片段的例子中,一旦修改了某个片段文件,就会调用 exec 资源更新主配置文件 rsyncd.conf。 每次运行 Puppet,exec 资源都会被运行,除非指定了如下参数中的一个: creates onlyif unless refreshonly => true refreshonly
我开发了一个应用程序,我想在按Enter后运行一些代码,在按Enter时代码成功运行。我想要一种方法来按Enter自动时,文本框的值改变。 但是作为事件,因为我有一个线程问题,所以如果我在键盘上按Enter,它运行得很好,但是当我写行代码()时,它不像我在键盘上按Enter,当按Enter运行方法“image()”时那样运行
编程时,工作流程如下: 更改文件并保存。 编译器或解释器。 看看结果 但是也有一个工作流程是这样的:(实际上它类似于处理我正在输入的这个堆栈溢出问题窗口) 启动一个程序,监视文件目录的更改。 我在寻找第二个工作流程通常被称为什么。
cPanel的这个接口允许您创建和安装Ruby on Rails应用程序。 如果您开发了Ruby on Rails应用程序,则可以使用此界面将其部署到服务器。 要创建Ruby on Rails应用程序,请按照下列步骤操作 - Step 1 - 单击cPanel Home的Software Section下的Ruby on Rails。 Step 2 - 在Ruby on Rails接口中,您将找到
我一直被docker困住了,没有找到任何变化。所以我在几天前发布了我的应用程序V1.0.0.0,很明显,因为这是一种预发布,我仍然有一些bug修复要做,目前我已经在V1.0.5.0了。但出于某种原因,每次部署时,它似乎都运行旧映像,而不是包含bug修复的新映像。 当我想重新部署时,我通过删除文件并将新文件放入关闭容器的文件夹来覆盖文件: ,当一切准备就绪时,我将用以下代码再次启动它们: 这将删除所
问题内容: 是否有人知道可以监视一个或多个本地文件的Firefox扩展,脚本或某种其他机制。当Firefox在文件中检测到(时间戳)更改时,将自动刷新或以其他方式更新其画布。 对于编辑CSS,理想的情况是仅重新加载CSS,而不是重新渲染完整的HTML。 实际上,仅通过外部文件,它就可以通过动态HTML / CSS编辑来实现与Firebug类似的行为。 问题答案: Live.js 从网站: 怎么样?