Sam*_*eph 8 bdd mechanize cucumber capybara google-apps-script
我正在尝试在Google App脚本上执行BDD.据我所知,原则上我应该可以使用Cucumber,Capybara和Mechanize的某些组合在非rails外部站点上进行BDD.在这种情况下,我正在尝试测试我创建的Google App脚本.
到目前为止,我已经在这个项目中获得了完整的代码:
https://github.com/tansaku/GoogleAppScriptBDD
但是我目前仍然坚持这个错误:
rack-test requires a rack application, but none was given (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
我知道我不想使用机架,我一直在搜索论坛和堆栈溢出,到目前为止,我最好在我的黄瓜环境文件中猜到这样的事情:
require 'capybara/cucumber'
Capybara.run_server=false
Capybara.current_driver = :mechanize
Capybara.app_host = 'https://script.google.com/macros/s/AKfycbytA2xBsaQ0_FSJXNkPVXQekBnWD4hXPOaCjCT00wo/dev'
Run Code Online (Sandbox Code Playgroud)
这篇SO帖子是相关的:
如何使用Cucumber来测试非Ruby,非Rack API
但我想使用Capybara,因为我正在测试HTML界面.这里描述了另一种选择:
http://blogs.kent.ac.uk/webdev/2012/08/02/using-capybara-webkit-with-cucumber-without-rails-or-rack/
我一直在这里讨论:
https://groups.google.com/group/cukes/browse_thread/thread/297163800eaf2968
但是我真的很想了解如何关闭Rack的东西,我希望使用机械化而不是上面提到的博客文章中描述的webkit,因为我现在理解机械化更好.
无论如何,这里有最好的做法,还是我只是继续尝试替代方案?
这里的Capybara说明有点令人抓狂:https: //github.com/jnicklas/capybara 说:
如果您不使用Rails,请将Capybara.app设置为您的机架应用程序:
Capybara.app = MyRackApp
但是这会产生一个不同的错误"未初始化的常量Object :: MyRackApp(NameError)"并且我不确定MyRackApp应该是什么,或者在哪里找到(我使用ruby的一般问题: - /)我应该正在通过黄瓜或水豚来源找出MyRackApp是什么?
无论如何,我以为我会在这里记录所有这些 - 非常感谢任何建议.我很想能够BDD我的谷歌应用程序脚本...
And*_*lov 10
如果您不使用Rails,请将Capybara.app设置为您的机架应用程序:
它的意思是:
如果您正在测试的应用程序是Rack应用程序,而不是Rails,请将Capybara.app设置为Rack应用程序:
由于您希望针对外部应用程序运行测试,因此您应该设置Capybara.app_host而不是Capybara.app.
我没有使用过capybara-mechanize但我认为它可能不是用来测试外部非Rack应用程序的最佳驱动程序.Mechanize继承自Racktest,Racktest用于测试带有Rack接口的应用程序(主要是Rails).如果您的应用没有Rack接口,那么capybara-mechanize可能不是最佳选择.
我建议你使用内置的selenium,poltergeist,capybara-webkit或terminus
使用Capybara.configure以下代码可以更好地编写代码:
Capybara.configure do |config|
config.run_server = false
config.default_driver = :selenium
config.app_host = 'https://www.google.com' # change url
end
Run Code Online (Sandbox Code Playgroud)
从Jeroen van Dijk的Google群组消息中,只需将您的Capybara.app设置为评估为true的内容即可.即
Capybara.app = "make sure this isn't nil"
Run Code Online (Sandbox Code Playgroud)
只要Capybara.run_server设置为false,它就不会尝试启动应用程序.到目前为止,它对我来说是有效的.
| 归档时间: |
|
| 查看次数: |
4645 次 |
| 最近记录: |