Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Rails 5.1和Vue.js进行系统测试_Javascript_Ruby On Rails_Rspec_Devise_Capybara - Fatal编程技术网

Javascript 使用Rails 5.1和Vue.js进行系统测试

Javascript 使用Rails 5.1和Vue.js进行系统测试,javascript,ruby-on-rails,rspec,devise,capybara,Javascript,Ruby On Rails,Rspec,Devise,Capybara,我已经试着调试这几天了,只是不知道是什么问题。我最初认为这是一种顺序依赖关系,但我不再这么认为了,所以rspec--bisect=verbose 我现在倾向于要么设计/管理员助手不能正常工作,要么我不能正确设置水豚/web驱动程序,要么做其他事情 此测试有时失败: 在重定向时,从菜单中选择项目以重定向到另一页。例如,按下Account Settings(帐户设置)后,会重定向到Account Settings(帐户设置)页面。这就是我责怪Desive helpers的原因,因为当我登陆主页时,我

我已经试着调试这几天了,只是不知道是什么问题。我最初认为这是一种顺序依赖关系,但我不再这么认为了,所以
rspec--bisect=verbose

我现在倾向于要么设计/管理员助手不能正常工作,要么我不能正确设置水豚/web驱动程序,要么做其他事情

此测试有时失败:

  • 在重定向时,从菜单中选择项目以重定向到另一页。例如,按下Account Settings(帐户设置)后,会重定向到Account Settings(帐户设置)页面。这就是我责怪Desive helpers的原因,因为当我登陆主页时,我已经登录,但当我进入帐户设置时,
    current_用户
    返回
    nil
    ,因此示例由于重定向到登录页面而失败
  • 这也是特定于测试的,实时代码在几个月内没有出现任何问题

    系统测试 设计配置 Javascript驱动菜单重定向
    我似乎已经解决了这个问题。我试过在这个答案中提到的几件事。据我所知,是什么修复了我的配置:

     RSpec.configure do |config|
       config.include Warden::Test::Helpers
     end
    

    这也让我放弃了:

      after(:each) do
        Warden.test_reset!
      end
    

    在我所有的测试中。我已经运行了很多测试,它们不会再失败,所以我现在假设这确实已经修复。

    @TarynEast我尝试只运行一个测试,看看是否可以访问帐户设置。没有前后块,只需将Webmock和用户设置为登录。我也没有做
    Warden.test\u重置。测试失败1/4times@MaximFedotov没有什么特别的,只是看看是否有任何配置设置跳出,在每个步骤之间添加睡眠,看看这是否提高了可靠性,等等。它只是有时失败,这一事实很奇怪,因为“帐户设置”中没有任何内容测试应该真正依赖于时间,除非您懒散地加载JS行为或在中处理会话cookieJS@TarynEast我认为等待不会影响重定向。事实上,我已经开始在另一个测试中使用等待,因为动画与水豚的点击有关。但我计划在测试中一起禁用动画,以避免这样做。但是我不认为等待会有助于重定向丢失
    当前用户
    @MaximFedotov第一个请求总是有效的,因为
    login\u as
    会缩短登录1个请求的时间,并直接设置登录用户对象。这就是为什么我问
    @user
    是否真的被保存了,因为在第二个请求中,它必须根据第一个响应期间设置的会话cookie进行真正的查找。问题是你说的故障是间歇性的,这往往表明时间问题。你是否真的试着在每一步之间睡上几秒钟,看看这是否能让测试变得可靠?(你说你认为它不会影响,但你真的尝试过吗?@MaximFedotov同样,每个人都说他们“使用了默认设置”,但后来发现他们已经关闭了事务,实际上没有让水豚运行AUT,或者正在做一些自定义会话管理,等等,这就是为什么我问它是否可以公开访问的原因,因为查看整个测试配置通常比将人们报告的配置拼凑起来更容易。如果你能拿出一个简单的例子来说明你的行为,这会让你更容易找到原因。这个修复程序还能继续工作吗?我似乎有同样的问题(除了React),但不幸的是,这对我不起作用。它仍然是脆弱的-失败的可能有10-20%的时间。
    handleCommand(command) {
      if (command === "logout") {
        Rails.ajax({
          url: "/sign_out",
          type: "DELETE",
          dataType: "json",
          success: (signed_in_status) => {
            this.$store.commit('authenticate', false)
            this.$message.success('You logged out');
            location.href = "/";
          },
          error: (signed_in_status) => {
            this.$store.commit('authenticate', true)
            this.$message.error('Something went wrong');
          }
        })
      }
      else if (command === "settings") {
        location.href = "/users/edit";
      }
      else if (command === "events") {
        location.href = "/events";
      }
      else if (command === "organiser") {
        location.href = "/admin/events";
      }
    }
    
     RSpec.configure do |config|
       config.include Warden::Test::Helpers
     end
    
     RSpec.configure do |config|
       config.include Devise::Test::IntegrationHelpers, type: :system
     end
    
      after(:each) do
        Warden.test_reset!
      end