我正在更新一个较旧的应用程序的Ruby和Rails版本,并试图通过所有的特性测试。由于仍然依赖capybara-webit,他们中的大多数都失败了。我已经用webdrivers和cuprite取代了它,并且修复了其中的一半。不过,所有注入的react组件(使用react-rails)都不会在运行测试时呈现(屏幕截图证明了这一点)。
我已经添加了gems,并且在我的spec_helper.rb文件中使用这个配置:
Capybara.register_driver(:cuprite) do |app|
Capybara::Cuprite::Driver.new(
app,
window_size: [1200, 800],
inspector: true
)
end
Capybara.default_driver = Capybara.javascript_driver = :cuprite我还试着让它在:headless_chrome驱动程序中工作,但效果甚至更差。使用该配置,页面也不会呈现注入的react组件的erb父容器。我还尝试添加一个组件正在呈现的sleep,但它不起作用。是否有一种方法可以获得在test中使用此设置呈现的反应性组件?
发布于 2022-05-13 14:21:39
它们是否以dev模式呈现?如果是这样的话,问题很可能是这两种模式在资产处理方面的差异。在测试模式(和生产)中,对资产进行打包以减少请求的数量。这意味着一个JS文件中的错误会阻止JS的其余部分执行。检查浏览器控制台是否有JS错误并全部修复
https://stackoverflow.com/questions/72221286
复制相似问题