如果我想对PhoneGap应用程序进行自动化测试(目前仅在iOS上),我有哪些选项(如果有的话)?
Selenium本来是我的第一个电话,但是你可以使用Selenium和phonegap应用吗?表明这是不可能的.看起来有一个iPhone驱动程序在iOS上运行Selenium,但没有迹象表明如何与PhoneGap进行交互.旧的PhoneGap维基似乎意味着它可能,但并没有真正说明如何.
我也看过将Jasmine与Jasmine-jQuery插件一起使用,但它需要复制应用程序HTML(以及保持两者同步等的开销).
我意识到这很像使用argparse模块在Python中设置两个互斥选项的默认选项,尽管从不同的角度来看(并且给出的答案似乎没有帮助).
代码块(解析器是argparse.ArgumentParser的一个实例):
mutex_group = parser.add_mutually_exclusive_group()
mutex_group.add_argument("--show", action="store_true",
dest="show", default=True)
mutex_group.add_argument("--insert", action="store_true",
dest="insert")
opts = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
如果没有--show或--insert指定我想默认为--show(因此default=True),但如果--insert被使用,则opts.show仍设置为true(因为默认的),尽管是一个互斥块的一部分.
当前代码检查在测试是否opt.show为True 时没有设置任何其他选项,即:
if opts.show and not opts.insert:
do_something()
elif opts.insert:
do_something_else()
Run Code Online (Sandbox Code Playgroud)
但是这不会扩展(当您添加--delete到互斥组时会发生什么,等等)所以我正在寻找一种更好的方法来使其他变量变为opts.showfalse,同时仍然将其作为默认值.
阅读argparse文档,我认为自定义操作将是可行的方法,但无法看到如何从内部访问互斥组的其他成员(理论是我可以迭代它们,并翻转默认值,如果剩下的任何一个都设定了).另一种选择是反转if条件,但这似乎是不清洁的(如果默认更改,if语句的顺序也必须改变).