gpt4 book ai didi

ruby-on-rails - Guard-rspec 和 ember 不能很好地协同工作

转载 作者:行者123 更新时间:2023-12-04 21:06:05 24 4
gpt4 key购买 nike

Rails 4.2.7 保护-rspec 4.7.3

由于我安装了 ember-cli-rails,因此 ember 应用程序阻止了 Guard-spec 运行并触发了数百个错误。
这是一个错误:

Directory: /home/sylvain/dev/placedemarche/marketadmin/tmp/broccoli_merge_trees-output_path-rlX3b4rm.tmp/marketadmin/tests/unit

is already being watched through: /home/sylvain/dev/placedemarche/marketadmin/tmp/broccoli_persistent_filterbabel__babel_marketadmin-output_path-Nv8C3Z67.tmp/marketadmin/tests/unit

MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors
** ERROR: directory is already being watched! **

我在保护文件中尝试了多种方法,甚至删除了所有 watch :
guard 'rspec',:cli => "--drb --format progress",all_after_pass: false do
# ignore /marketadmin/
# watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
# watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
# watch('spec/spec_helper.rb') { "spec" }

# # Rails example
# watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
# watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
# watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
# watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
# watch('config/routes.rb') { "spec/routing" }
# watch('app/controllers/application_controller.rb') { "spec/controllers" }
# # Capybara request specs
# watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
end

我尝试了多个版本的忽略,但仍然失败。

问题基本上是用于生成预览应用程序的 tmp 文件夹 ember 使守卫发疯。似乎守卫忽略并没有真正让守卫避开文件夹,它仍然扫描它。

如何使保护文件忽略 ember 文件夹,以便我可以恢复 rspec-guard ?

编辑

我已将保护文件编辑如下:
guard 'rspec',:cli => "--drb --format progress",all_after_pass: false do
ignore(%r{^marketadmin/(.+)})
end

它仍然失败并出现以下错误(有太多错误我不得不将终端内存设置为 30 000 行,20 000 行还不够):
18:24:39 - INFO - Guard::RSpec is running
18:24:39 - DEBUG - Hook :start_end executed for Guard::RSpec
D, [2017-08-24T18:25:00.166155 #20128] DEBUG -- : Waiting for processing to start...
18:25:00 - INFO - Guard is now watching at '/home/sylvain/dev/placedemarche'
18:25:00 - DEBUG - Start interactor
** ERROR: directory is already being watched! **

Directory: /home/sylvain/dev/placedemarche/marketadmin/tmp/funnel-input_base_path-WVhWKrYs.tmp

is already being watched through: /home/sylvain/dev/placedemarche/marketadmin/node_modules/qunit-notifications

MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors
** ERROR: directory is already being watched! **

Directory: /home/sylvain/dev/placedemarche/marketadmin/tmp/funnel-input_base_path-ULeE6XMF.tmp

is already being watched through: /home/sylvain/dev/placedemarche/marketadmin/app

MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors

最佳答案

正如我在 IRC channel 中所写,我不太明白,您要避免哪个子文件夹?

如果我在语句顶部添加我的保护文件 ignore(%r{frontend/(.+)}) ,或者在你的情况下 ignore(%r{marketadmin/(.+)})它非常成功地忽略了前端应用程序中发生的任何事情。

我的 Guardfile 看起来像:

guard :rspec, cmd: "bundle exec rspec" do
require "guard/rspec/dsl"
dsl = Guard::RSpec::Dsl.new(self)

# Feel free to open issues for suggestions and improvements

ignore(%r{frontend/(.+)})
# RSpec files
rspec = dsl.rspec
watch(rspec.spec_helper) { rspec.spec_dir }
...

我没有使用 ember 的经验,而你正在使用的这个 broccoli 东西,也许问题是那里的配置?

一个有用的命令可以是:
LISTEN_GEM_DEBUGGING=2 bundle exec guard -d

希望以上有所帮助。
干杯!

更新:检查您看到的错误,并开始在我的 mock 上查看这些错误。设置,安装 broccolli-funnel 后,它创建了符号链接(symbolic link),而guard使用的监听器gem似乎有问题,不幸的是我今天没有时间更深入地分析......
也许您可以尝试使用 ember 超出 rails 目录的设置。

关于ruby-on-rails - Guard-rspec 和 ember 不能很好地协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com