rspec 和 capybara 带有关于使用 4.8.2 的 QT 警告,但安装了 qt5

Posted

技术标签:

【中文标题】rspec 和 capybara 带有关于使用 4.8.2 的 QT 警告,但安装了 qt5【英文标题】:rspec and capybara with QT warning about using 4.8.2 but qt5 is installed 【发布时间】:2015-10-07 17:02:07 【问题描述】:

我使用的是 Ubuntu 14.04,我需要让 rspec 和 capybara 与 QT5 一起工作。我已经安装了QT5。但是当我运行 rspec/feature/whatever_test 时得到这个警告:

WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt. You're using version 4.8.6.

但是:

~ % TDIR=/usr/share/qtX qmake --version
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

~ % qtchooser -l
4
5
default
qt4-i386-linux-gnu
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5

我试过qtchooser -qt=qt5 没有任何改变。 怎么切换到qt5,让capybara用呢?

谢谢大家

【问题讨论】:

【参考方案1】:

所以安装完qt5后,可以通过上面的命令进行验证。我不得不卸载 capybara-webkit gem uninstall capybara-webkit。重新安装后我得到了这个烂摊子:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/chris/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20151007-20641-1jdvtt5.rb extconf.rb
cd src/ && ( test -e Makefile.webkit_server || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/chris/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capybara-webkit-1.6.0/src/webkit_server.pro -o Makefile.webkit_server ) && make -f Makefile.webkit_server 
Project ERROR: Unknown module(s) in QT: webkitwidgets
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3
Command 'make' failed

make "DESTDIR=" clean
cd src/ && ( test -e Makefile.webkit_server || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/chris/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capybara-webkit-1.6.0/src/webkit_server.pro -o Makefile.webkit_server ) && make -f Makefile.webkit_server clean
Project ERROR: Unknown module(s) in QT: webkitwidgets
make: *** [sub-src-webkit_server-pro-clean-ordered] Error 3

make "DESTDIR="
cd src/ && ( test -e Makefile.webkit_server || /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /home/chris/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capybara-webkit-1.6.0/src/webkit_server.pro -o Makefile.webkit_server ) && make -f Makefile.webkit_server 
Project ERROR: Unknown module(s) in QT: webkitwidgets
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3

这里的关键是:项目错误:QT 中的未知模块:webkitwidgets

见this

你需要做的是运行 sudo apt-get install libqt5webkit5-dev 然后捆绑安装或 gem install capybara-webkit。

【讨论】:

【参考方案2】:

Capybara 不使用 qt,capybara-WebKit 驱动程序使用。你需要卸载并重建 capybara-webkit

【讨论】:

嘿,感谢您的回复,任何想法如何做到这一点。我刚刚卸载,现在当我尝试重新安装时,它会抛出各种错误。 hmmm -- github.com/thoughtbot/capybara-webkit/wiki/… - 实际上声明它不会在 14.04 上使用 qt5 构建 - 不确定这是最新的还是过时的 也许这个 - bugs.launchpad.net/ubuntu/+source/qtwebkit-opensource-src/+bug/…

以上是关于rspec 和 capybara 带有关于使用 4.8.2 的 QT 警告,但安装了 qt5的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 中使用 RSpec 和 Capybara 时未定义的方法“访问”

更改默认 Capybara 浏览器窗口大小

清理测试数据库,仅使用RSPEC和Capybara运行测试生成的数据

使用 capybara 进行 rspec2 验收测试

如何在 rspec 中使用 capybara 点击下拉选项

如何使用rails cucumber,rspec,capybara在视图(dhtml)中测试动态部分?