我们开始使用Appium / Cucumber / Ruby堆栈构建UI e2e测试。由于我们使用的是Xamarin表单,我们显然希望测试iOS和安卓。最后,我们希望将测试上传到App,以便在多个设备上运行,获取报告等等。
黄瓜通常使用以下目录结构:
E2E
-特征
-支持
-步骤定义
-家庭特征
问题从env.rb文件开始,该文件包含所有Appium所需的功能,它们与iOS和Android完全不同。
1-我们如何以实际的方式将env.rb从一个平台切换到另一个平台?
这两个平台的特性和步骤定义将基本相同,但最终会有所不同,例如在Android中测试back按钮的行为。
2-我们能否创建某种平台全局变量并创建条件,例如,如果PLATFORM = ANDROID那么.在我们的步骤定义和特性?
另一种方法是完全分离每个平台的源代码,如下所示:
E2E
-监督办
-特征
-支持
-?
-?
-步骤定义
-ANDROID
-特征
-支持
-?
-?
-步骤定义
对于每个平台,这种方法的代码都要干净得多,但很明显,缺点是我们必须编写两次所有测试。
3-你认为哪种方法更好?
谢谢
发布于 2018-07-04 13:01:31
这并不是一个关于Cucumber的问题,它更多地是关于您的应用程序/组织,以及有多少东西是特定于某个特定平台的。如果你有很多不同的东西在IOS和安卓上工作,并且你一次开发一个平台(e.g.have,独立的IOS/安卓团队),那么单独的功能集可能是最好的。
如果绝大部分内容是相同的,那么一个可以在不同平台上运行的可配置文件夹(可能使用环境变量来选择)就可以工作了。或者你可以把这两者结合起来使用features ios-features android-features
。
黄瓜内部有许多工具,它们支持在单个文件夹中使用不同的配置。记住,env.rb只是一个ruby文件,所以它可以加载环境变量并使用这些变量来更改配置。此外,您还有标记和钩子,因此可以使用@ios--例如,您可以使用配置文件。
https://stackoverflow.com/questions/51164182
复制相似问题