- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 RSpec 和 Capybara 编写测试,但是,我总是收到以下错误:
No route matches [GET] "/semead/assets/application-7a2cf02623b8feb6b939ae72b917f262a79b289d0bf90f0a932f8eb031fe5ef6.js"
application.css
会出现相同的错误。 Assets 。我尝试使用 capybara-webkit 和 selenium-webdriver,但结果是一样的。
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
# Prevent database truncation if the environment is production
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
require 'support/factory_girl'
...
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'support/factory_girl'
require 'capybara/rspec'
...
require 'rails_helper'
RSpec.feature "Registering a new user", js: true do
scenario "fill the registration form" do
visit "/participantes/new"
@user = build(:user)
...
Failures:
1) Registering a new user filling the registration form
Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"
ActionController::RoutingError:
No route matches [GET] "/semead/assets/application-f01fee28086ae8e064a7eda175e05dd4423d0429269ec94c142dc12b2eb6768d.css"
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/rack/logger.rb:38:in `call_app'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/rack/logger.rb:20:in `block in call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/rack/logger.rb:20:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/lock.rb:17:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/engine.rb:518:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/application.rb:165:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/capybara-2.11.0/lib/capybara/server.rb:43:in `call'
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service'
# ------------------
# --- Caused by: ---
# Capybara::ElementNotFound:
# Unable to find css ".select2-container"
# /home/jalerson/.rvm/gems/ruby-2.2.3/gems/capybara-2.11.0/lib/capybara/node/finders.rb:44:in `block in find'
config/application.rb
,我设置了
config.relative_url_root = '/semead'
require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(*Rails.groups)
module Semead
class Application < Rails::Application
config.relative_url_root = '/semead'
config.i18n.default_locale = 'pt-BR'
config.active_record.raise_in_transactional_callbacks = true
end
end
Rails.application.routes.draw do
resources :trabalhos do
get 'prazo_encerrado', on: :collection
end
resources :minicursos do
resources :inscricoes
end
namespace :admin do
resources :participantes do
get 'aprovar_nota_empenho'
end
resources :organizadores
resources :trabalhos do
get 'avaliar'
resources :avaliacoes, controller: 'avaliacoes_trabalhos'
end
resources :minicursos do
resources :avaliacoes, controller: 'avaliacoes_minicursos'
end
end
resources :sessions
resources :participantes do
get 'pagar'
end
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
root 'participantes#new'
...
最佳答案
我没有证实这一点,但作为有根据的猜测 - 我相信 config.relative_url_root
只影响路由生成,不影响路由处理。测试时,Capybara 将被测应用挂载在“/” - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rails.rb ,这意味着对/semead/... 的请求不会被正确路由。对此最简单的解决方案可能是 se config.relative_url_root
到 '/' 在 config/environments/test.rb
请注意,仅重新定义 Capybara.app 以将应用程序挂载到/semead 可能无法正常工作,因为 Capybara 安装了一些需要执行的操作的中间件。
关于ruby-on-rails - TE :No route matches error when trying to use RSpec and Capybara,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42811351/
您好,如果没有身份验证,我尝试保护路由,但它不起作用 警告:您不应在同一个 route 使用路线组件和路线渲染;路线渲染将被忽略 App.js import React, { Fragment,
几乎我见过的每个示例,app.js 都使用 require 和路径 ./。我想知道为什么我们不能只使用 /。例如,为什么我们不能执行以下操作。 var express = require('expre
如果router.all()只匹配所有方法,是否可以用router.use()代替?router.use() 和 router.route() 之间有什么区别? 最佳答案 router.all:这意味
在我的 Symfony应用程序我想根据当前用户的文化选择 routing.yml; 'en' => routing.en.yml 'no' => routing.no.yml 等等。 关于如何做到这一
我正在使用 React Router v6 并为我的应用程序创建私有(private)路由。 在文件 PrivateRoute.js 中,我有代码 import React from 'react';
这个问题在这里已经有了答案: Error "Error: A is only ever to be used as the child of element" (14 个回答) Error: [P
我正在关注 Ember Quick Start guide (ember-cli v 2.11),并按照说明构建玩具应用程序。在“定义路线”部分,说明说要运行命令 ember generate rou
这个问题在这里已经有了答案: ReactJS: [Home] is not a component. All component children of must be a or (5 个答
这个问题在这里已经有了答案: ReactJS: [Home] is not a component. All component children of must be a or (5 个答
单击“开始测验”按钮时,我试图导航到“/quiz”。 但是,当我编译我的代码时,我在网站应用程序上收到以下错误:[Home] is not a component. All component ch
我有一点咸菜。我正在使用路由保护(实现 CanActivate 接口(interface))来检查用户是否被授予访问特定路由的权限: const routes: Routes = [ {
我正在尝试测试我的应用程序正在使用的引擎内部的 Controller 。规范不在引擎中,而是在应用程序本身中(我试图在引擎中进行测试,但也遇到了问题)。 我的引擎有以下 routes.rb: Revi
我是Remix的新手,我正在尝试使用V2路由方法实现特定的路由解决方案。。这是一个人为的例子,不是真实的东西,只是为了说明这一点。。我想要的URL方案是:。我从以下几条路线开始:。App/routes
我正在尝试从 rails 2.3.x(使用 subdomain_routes 插件)转换一些子域路由,如下所示: map.subdomain :biz do |biz| biz.resources
我将 Symfony 的 3.1 路由组件用作独立组件。 我想调试路由。 据此: http://symfony.com/doc/current/routing/debug.html 这是通过运行以下命
我是 Sparkjava 的新手,总体上喜欢它。但是,是否必须在 main 方法中定义新的路由/端点?对于任何重要的 Web 应用程序,这将导致一个非常长的 main 方法,或者我需要有多个 main
我刚刚使用node.js 和express.js 开发了一个原型(prototype)。在这里,我使用了 Express 路由来对后端进行 CRUD。 server.js 文件: app.get('/
我不明白 Angular 4 中路由的一些基本概念。 index.html: 文件结构: - app |- app.routings.ts |- collections |-- collection
我在反应路线和理解合成路线方面遇到了一些困难。我尝试了一些代码,但不幸的是,它不能像预期的那样工作。“/”路径运行得很好,但是,当我尝试访问“/Child”时,它似乎不起作用。我认为包装器路由}/>可
我正在尝试使用 cakephp 3 实现 REST api。 为了给我的问题提供一个易于重现的示例,我从全新安装 cakephp 3.1.11 开始。 在 config/routes.php 中,我添
我是一名优秀的程序员,十分优秀!