使用 Capybara 测试资产管道

发布于 2024-12-16 22:16:28 字数 384 浏览 0 评论 0原文

我想使用 Capybara 在 Rails 3.1 应用程序中执行简单的请求规范。标准案例都按预期工作,但是当我想测试资产管道生成的CSS时,我收到以下错误:

Failure/Error: visit '/assets/main.css'
ActionController::RoutingError:
  No route matches [GET] "/assets/main.css"

我认为问题是测试环境没有提供完整的服务器,因此也没有Sprockets中间件提供资产。 这个问题有解决办法吗?

编辑:现在可能了! 我们更新到了 Rails 3.2.12 和 Capybara 2.0.2,现在这些资源也可以在功能规范中找到。

I want to do simple request specs in my Rails 3.1 application with Capybara. The standard cases all work as expected, but when I want to test CSS generated by the asset pipeline, I receive the following error:

Failure/Error: visit '/assets/main.css'
ActionController::RoutingError:
  No route matches [GET] "/assets/main.css"

I think the problem is that the test environment does not provide a complete server and so also no Sprockets middleware delivering the assets.
Is there a solution to this problem?

EDIT: Now possible!
We updated to Rails 3.2.12 and Capybara 2.0.2, now the assets are also available in the feature specs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灯角 2024-12-23 22:16:28

Phusion 人员在博客中讨论了 的可能性将资产渲染为字符串

MyApp::Application.assets.find_asset('main.css').body

您也可以在测试中使用它。该解决方案并不理想,并且/因为 Capybara 不再参与,但它有助于在我的特定情况下验证 CSS。欢迎更好的方法!

The Phusion guys blogged about a possibility to render an asset to a string:

MyApp::Application.assets.find_asset('main.css').body

You can also use this in tests. The solution is not ideal and/since Capybara isn't involved anymore, but it helps in my specific case to validate CSS. Better approaches are welcome!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文