jejacks0n / teaspoon

Teaspoon: Javascript test runner for Rails. Use Selenium, BrowserStack, or PhantomJS.
1.43k stars 243 forks source link

rake teaspoon failing #213

Closed agenteo closed 10 years ago

agenteo commented 10 years ago

Hi,

Ruby 2.1.0 Rails 4.1.0

I created a: rails new teaspoon-sandbox --skip-active-record

added teaspoon to the gemfile

group :development, :test do
  gem "teaspoon"
  gem "phantomjs", ">= 1.8.1.1" # this is optional if the phantomjs binary is installed (as of teaspoon 0.7.9)
end

run: rails g teaspoon:install

and when I run bundle exec rake teaspoon I get the error [1]

So I followed the suggestion in the error, and there were 3 files that I had to add to an initializer as follows:

Rails.application.config.assets.precompile += %w( teaspoon.css jasmine/1.3.1.js teaspoon-jasmine.js)

after the rake task works fine.

I wonder if this is an expected step, if I overlooked something or if something is missing in the install generator.

Cheers.

[1]

Starting the Teaspoon server...
Teaspoon running default suite at http://127.0.0.1:63286/teaspoon/default
Error: ActionView::Template::Error: Asset filtered out and will not be served: add `Rails.application.config.assets.precompile += %w( teaspoon.css )` to `config/initializers/assets.rb` and restart your server
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/sprockets-rails-2.1.3/lib/sprockets/rails/helper.rb:185:in `check_errors_for'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/sprockets-rails-2.1.3/lib/sprockets/rails/helper.rb:156:in `block in stylesheet_link_tag'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/sprockets-rails-2.1.3/lib/sprockets/rails/helper.rb:155:in `map'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/sprockets-rails-2.1.3/lib/sprockets/rails/helper.rb:155:in `stylesheet_link_tag'
/Users/eteotti/.rvm/gems/ruby-2.1.0@redirect_test/gems/teaspoon-0.8.0/app/views/teaspoon/suite/show.html.erb:8:in `___sers_eteotti__rvm_gems_ruby_______redirect_test_gems_teaspoon_______app_views_teaspoon_suite_show_html_erb__1159591918309596909_70211748962240'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/template.rb:145:in `block in render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications.rb:161:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/template.rb:339:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/template.rb:143:in `render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:55:in `block (2 levels) in render_template'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `block in instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:54:in `block in render_template'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:62:in `render_with_layout'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:53:in `render_template'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/template_renderer.rb:17:in `render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/renderer.rb:42:in `render_template'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/renderer/renderer.rb:23:in `render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/rendering.rb:99:in `_render_template'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/streaming.rb:217:in `_render_template'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/rendering.rb:82:in `render_to_body'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/rendering.rb:32:in `render_to_body'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/renderers.rb:32:in `render_to_body'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/abstract_controller/rendering.rb:25:in `render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/rendering.rb:16:in `render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/Users/eteotti/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/core_ext/benchmark.rb:12:in `ms'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/instrumentation.rb:41:in `block in render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/instrumentation.rb:40:in `render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/implicit_render.rb:10:in `default_render'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/implicit_render.rb:5:in `send_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/abstract_controller/base.rb:189:in `process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/rendering.rb:10:in `process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:113:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:113:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:166:in `block in halting'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:229:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:229:in `block in halting'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:166:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:166:in `block in halting'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:166:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:166:in `block in halting'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:86:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:86:in `run_callbacks'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/abstract_controller/callbacks.rb:19:in `process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/rescue.rb:29:in `process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `block in instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `instrument'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/abstract_controller/base.rb:136:in `process'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionview-4.1.0/lib/action_view/rendering.rb:30:in `process'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal.rb:195:in `dispatch'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_controller/metal.rb:231:in `block in action'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/routing/route_set.rb:80:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/routing/route_set.rb:48:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/journey/router.rb:71:in `block in call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/journey/router.rb:59:in `each'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/journey/router.rb:59:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/routing/route_set.rb:676:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/engine.rb:514:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/railtie.rb:194:in `public_send'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/railtie.rb:194:in `method_missing'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/journey/router.rb:71:in `block in call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/journey/router.rb:59:in `each'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/journey/router.rb:59:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/routing/route_set.rb:676:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/etag.rb:23:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/conditionalget.rb:25:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/flash.rb:254:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:225:in `context'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:220:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/cookies.rb:560:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/callbacks.rb:82:in `run_callbacks'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/reloader.rb:73:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/rack/logger.rb:38:in `call_app'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/rack/logger.rb:20:in `block in call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/tagged_logging.rb:68:in `block in tagged'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/tagged_logging.rb:26:in `tagged'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/tagged_logging.rb:68:in `tagged'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/rack/logger.rb:20:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/request_id.rb:21:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/activesupport-4.1.0/lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/actionpack-4.1.0/lib/action_dispatch/middleware/static.rb:64:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/sendfile.rb:112:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/engine.rb:514:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/railties-4.1.0/lib/rails/application.rb:144:in `call'
/Users/eteotti/.rvm/gems/ruby-2.1.0@global/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'
/Users/eteotti/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/eteotti/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/eteotti/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
  # http://127.0.0.1:63286/teaspoon/default?reporter=Console:1

Failed to load: http://127.0.0.1:63286/teaspoon/default?reporter=Console
jejacks0n commented 10 years ago

Thanks for the info. Yeah, this is a known problem, but poorly understood. Something changed in how assets work in development with rails 4.1. What I think has changed is that assets from gems aren't treated the same -- I remember commenting on an issue in sprockets about the difference between development and production, and I believe they've fixed it so gem assets aren't available in all environments now. I believe if we put more or less that line in the gem it will work, but I'm unsure how to make it not effect other things.

For instance, we can't say we want to compile all .js files, because that would mess up other things. But we also don't want to maintain a list of assets that could be used from the gem -- that also sucks. So... unsure how we can solve it.

agenteo commented 10 years ago

I see, I'd like to give you my input but I want to confirm I understand how it used to work first.

was: https://github.com/modeset/teaspoon/blob/master/lib/teaspoon/engine.rb:18

Teaspoon::Engine.append_asset_paths(app.config.assets)

the place in charge of loading the assets?