提问者:小点点

为指定平台(Android或iOS)运行自动测试。每次发布仅一个平台。如何指定Maven必须运行哪个平台?


爪哇, Maven, Appium, Cucumber

项目结构-包:

  • 人造人
  • 爱欧斯
  • 特征

测试用例位于软件包功能-使用Cucumber。

测试运行:

    < li >生成jar文件 < li >通过Intellij IDEA

现在特性(Cucumber上的测试用例)使用了标记@ios模拟器。通过此标记,Cucumber可以找到带有@Before(value=“@ios simulator”)的类-仅针对ios运行测试。如果您将功能中的所有标签更改为@android,这将在android下运行测试。

问题:选择测试运行的平台-

目标:平台名称必须存储在一个地方,例如在 pom.xml 文件中。Cucumber或其他东西接受这个值并为选定的平台运行测试(通过选择适当的包)。或者通过命令:mvn test-Dandroid-如果使用maven。

Cucumber是对测试运行的响应。但是如何选择更舒适的平台——我不知道。在功能中动态生成标签(从 pom.xml 文件中获取平台名称值)不起作用。

这个任务Maven怎么做,或者cucumber怎么做?有什么想法吗


共1个答案

匿名用户

我建议在您的测试设置中添加如下内容

device = System.getProperty("device");

这将允许您指定通过“iPhone模拟器”或“Android”运行测试的位置。

从命令行中,您将执行以下操作

mvn -Ddevice="Android" test

现在你知道你想在什么类型的设备上运行,你可以设置你正在测试的平台。从那里开始,您的测试可能应该有某种全局的方式来选择元素或者与元素交互,并且可以决定使用哪个版本。

如果您的应用程序确实是混合应用程序,这应该没问题,否则我会在平台的包中保留单独的测试。

我正在使用 junit 并检查测试的包名称以自动执行其他配置。

if (this.getClass().getPackage().toString().contains("ios")) {
    platform = iOS;
}