gpt4 book ai didi

ruby-on-rails - Rspec 系统测试在单独运行时通过,与整个套件一起运行时失败

转载 作者:行者123 更新时间:2023-12-04 19:26:28 25 4
gpt4 key购买 nike

当我单独运行它时,我有以下测试通过:

require 'rails_helper'

RSpec.describe 'deleting a non-recurring user event', js: true do

let(:user) { create(:proofreader_user) }
let(:date) { Date.current.strftime('%Y-%m-%d') }
let(:date_time) { date + ' 00:00'}

it 'deletes the event' do
visit root_path
click_on "Login"
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_on "Sign In"
visit calendar_path
expect(current_path).to eq(calendar_path)
expect(page).to have_css("#complete_registration:disabled")
expect(page).to_not have_css("td.fc-event-container")
find("td.fc-day[data-date='#{date}']").click
expect(page).to have_css("div#user-event-modal")
expect(page).to have_select('user_event[title]', :options => UserEvent.titles.keys)
expect(find('input', id: 'user_event_starting').value).to eq date_time
expect(find('input', id: 'user_event_ending').value).to eq date_time
page.execute_script("$('input#user_event_starting').val('#{date} 09:00')")
expect(find('input', id: 'user_event_starting').value).to eq date + ' 09:00'
page.execute_script("$('input#user_event_ending').val('#{date} 12:00')")
expect(find('input', id: 'user_event_ending').value).to eq date + ' 12:00'
click_on 'Save'
expect(page).to have_css("td.fc-event-container a.fc-day-grid-event")
expect(page).to have_css("span.fc-time", text: '9a - 12p')
expect(page).to have_css("span.fc-title", text: 'work')
find("span.fc-time", text: '9a - 12p').click
expect(page).to have_css("div#user-event-modal")
find("#del_one_event").click
within('.swal2-actions') { click_button('Yes') }
wait_for { page }.to_not have_css("div#user-event-modal")
expect(page).to_not have_css("td.fc-event-container")
expect(page).to_not have_css("span.fc-time", text: '10a - 14p')
end
end

但是,当我运行所有测试时,出现以下错误:
Failure/Error: within('.swal2-actions') { click_button('Yes') }

Capybara::ElementNotFound:
Unable to find visible css ".swal2-actions"

为什么这个测试在我与另一个测试一起运行时失败,我该如何修复它以便在我运行所有测试时通过?

最佳答案

如果没有更多信息,就无法确定。最好能创建和发布 minimum complete verifiable example .

根据给出的信息,我猜想与其他测试一起运行时失败的测试没有正确隔离。其他示例正在更改应用程序的状态,导致此测试失败。所以看看你的 beforeafter Hook 并确保您正在设置 config.use_transactional_fixtures = true在 rails_helper.rb

如果时间之间可能存在延迟 #del_one_event单击和 .swal2-actions出现,然后改变

within('.swal2-actions') { click_button('Yes') }


find('.swal2-actions').click_button('Yes')

如果这些都不能解决问题,您可能遇到了 browser caching 的问题。 ,但这更难调试。

关于ruby-on-rails - Rspec 系统测试在单独运行时通过,与整个套件一起运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54745030/

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