我不确定最近是否已经讨论过这个话题,但是我自己尝试在网上搜索一些指南和修复程序时感到非常沮丧。我做了很多事情,我真的无法说出我已经做了什么:(
因此,我尝试在Windows 10 64bit上运行Calabash-Android,按照https://github.com/calabash/calabash-android上的步骤进行操作,安装了ruby,Ant和DevKit。现在,当我尝试运行以下测试时:
calabash-android run app-release.apk
我得到这样的输出:
*** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows
WARNING: cannot load such file -- gherkin_lexer_en
Couldn't load gherkin_lexer_en
The $LOAD_PATH was:
lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/bin/../lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/builder-3.2.2/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/diff-lcs-1.2.5/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/multi_json-1.11.2/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/multi_test-0.1.2/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/retriable-1.4.1/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/slowhandcuke-0.0.3/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/rubyzip-1.1.7/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/awesome_print-1.6.1/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/httpclient-2.7.0.1/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/escape-0.0.4/lib
C:/Ruby21/lib/ruby/gems/2.1.0/gems/calabash-android-0.5.14/lib
C:/Ruby21/lib/ruby/site_ruby/2.1.0
C:/Ruby21/lib/ruby/site_ruby/2.1.0/i386-msvcrt
C:/Ruby21/lib/ruby/site_ruby
C:/Ruby21/lib/ruby/vendor_ruby/2.1.0
C:/Ruby21/lib/ruby/vendor_ruby/2.1.0/i386-msvcrt
C:/Ruby21/lib/ruby/vendor_ruby
C:/Ruby21/lib/ruby/2.1.0
C:/Ruby21/lib/ruby/2.1.0/i386-mingw32. Reverting to Ruby lexer.
No lexer was found for en (cannot load such file -- gherkin/lexer/en). Supported languages are listed in gherkin/i18n.json. (Gherkin::I18n::LexerNotFound)
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/i18n.rb:108:in `rescue in lexer'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/i18n.rb:97:in `lexer'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:139:in `transition_table'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:128:in `build_transition_map'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:124:in `transition_map'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:91:in `initialize'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:68:in `new'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:68:in `push_machine'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2-x86-mingw32/lib/gherkin/parser/parser.rb:31:in `parse'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/feature_file.rb:37:in `parse'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/runtime/features_loader.rb:28:in `block in load'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/runtime/features_loader.rb:26:in `each'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/runtime/features_loader.rb:26:in `load'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/runtime/features_loader.rb:14:in `features'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/runtime.rb:179:in `features'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/runtime.rb:49:in `run!'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/lib/cucumber/cli/main.rb:47:in `execute!'
C:/Ruby21/lib/ruby/gems/2.1.0/gems/cucumber-1.3.20/bin/cucumber:13:in `<top (required)>'
C:/Ruby21/bin/cucumber:23:in `load'
C:/Ruby21/bin/cucumber:23:in `<main>'
因此,我搜索了第一个错误“警告无法加载此类文件[...],发现多个结果,尝试了此https://github.com/cucumber/gherkin/issues/320,并尝试了:
gem install gherkin --platform=ruby
得到这样的输出:
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing gherkin:
ERROR: Failed to build gem native extension.
C:/Ruby21/bin/ruby.exe extconf.rb
checking for main() in -lc... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby21/bin/ruby
--with-gherkin_lexer_ar-dir
--without-gherkin_lexer_ar-dir
--with-gherkin_lexer_ar-include
--without-gherkin_lexer_ar-include=${gherkin_lexer_ar-dir}/include
--with-gherkin_lexer_ar-lib
--without-gherkin_lexer_ar-lib=${gherkin_lexer_ar-dir}/lib
--with-clib
--without-clib
C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:541:in `try_link0'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:556:in `try_link'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:736:in `try_func'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:967:in `block in have_library'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:912:in `block in checking_for'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:351:in `block (2 levels) in postpone'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:321:in `open'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:351:in `block in postpone'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:321:in `open'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:347:in `postpone'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:911:in `checking_for'
from C:/Ruby21/lib/ruby/2.1.0/mkmf.rb:962:in `have_library'
from extconf.rb:5:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in C:/Ruby21/lib/ruby/gems/2.1.0/gems/gherkin-2.12.2 for inspection.
Results logged to C:/Ruby21/lib/ruby/gems/2.1.0/extensions/x86-mingw32/2.1.0/gherkin-2.12.2/gem_make.out
我很确定自己做了几次修复,但是对我没有任何帮助,也许你们可以帮助我?确实需要使这项工作。也许我只是错过了一些小细节?
招呼
卡帕斯科
最佳答案
我们正在研究一个实验性的Windows版Calabash沙箱,这可能会有所帮助。
在Admin Powershell中,运行:
set-executionpolicy unrestricted
然后
(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/calabash/install/master/install-windows.ps1") | powershell -command -
然后打开命令提示符(不是Powershell)并运行
calabash-sandbox
在该沙箱中,所有的calabash-android命令都应该可以使用,并且您将拥有一个预先配置的ruby环境(它不会影响系统的其余ruby配置)。
要退出沙箱,只需键入
exit
完成安装后,请记住在Powershell中运行此命令:
set-executionpolicy restricted
为了安全起见:)