Cucumber 在不同的java文件中构造JVM步骤定义

Cucumber 在不同的java文件中构造JVM步骤定义,cucumber,appium,cucumber-jvm,cucumber-junit,cucumber-java,Cucumber,Appium,Cucumber Jvm,Cucumber Junit,Cucumber Java,我正在从事一个基于Appium Cumber Java的自动化项目,该项目将随着时间的推移而不断发展 目前,我已经在一个iOS文件和另一个Android文件中给出了步骤定义。 这两个文件都是从一个公共basetest类扩展而来的。 我在这两个文件中使用new关键字初始化所需的页面对象 现在,我想把它模块化一点&创建一个CommonStepDefs文件。但我开始得到nullpointer异常 您能建议使用类似于此的方法或示例来构建此模型吗 提前谢谢 public class AndroidTest

我正在从事一个基于Appium Cumber Java的自动化项目,该项目将随着时间的推移而不断发展

目前,我已经在一个iOS文件和另一个Android文件中给出了步骤定义。 这两个文件都是从一个公共basetest类扩展而来的。 我在这两个文件中使用new关键字初始化所需的页面对象

现在,我想把它模块化一点&创建一个CommonStepDefs文件。但我开始得到nullpointer异常

您能建议使用类似于此的方法或示例来构建此模型吗

提前谢谢

public class AndroidTestsStepDefs_usingFactory extends BaseTestClass {

AndroidChooseCountryPage androidChooseCountryPage;
AndroidCountrySelectionPage androidCountrySelectionPage;
OrderPrints orderPrints;
AndroidHomePage androidHomePage;
TourPage tourPage;

public AndroidTestsStepDefs_usingFactory() throws IOException, AWTException {
}


@Given("^the app has been installed$")
public void the_app_has_been_installed() throws Throwable {
    initializeDriver("android");
    super.setCoreAppType("Android");
}

您对在步骤定义文件之间共享状态感兴趣

Java中共享状态的惯用方法是创建一个公共对象,该对象使用依赖项注入在所有步骤之间共享

如果您的项目使用依赖项注入框架,请使用该框架在步骤定义类之间共享状态。Cucumber JVM支持许多不同的依赖注入框架。你的可能得到了支持

如果不使用依赖注入,我建议使用PicoContainer

我已经就这个话题写了两篇博文。共享状态使用

  • 微微容器:
  • 春天:

请提供更多详细信息,哪一行会引发异常?非常感谢,非常感谢。非常感谢。还有两个查询-1)Spring ApplicationContext是否可以用来临时存储方便的内容,或者我们是否需要创建某种数据模型。2) 我正在使用Cucumber+Appium+Java,在这种背景下,我对是使用TestNG ITestContext还是Spring的ApplicationContext来存储上述状态感到困惑。请就此提供一些想法。ThanksI可能会将我需要的任何东西存储在我自己的世界对象中。World对象是一个相当简单的结构,它会给我很大的自由度,我不需要再学习另一个框架。还有一个查询-我刚刚开始使用TestNG(cucumber类扩展AbstractTestNGCucumberTests类)。A) 所以基本上,我们如何使用Maven+PicoContainer+Cucumber实现并行运行呢。根据我的理解,使用Maven surefire进行并行运行并不容易&这就是人们使用TestNG的原因。B) 或者,不使用TestNG也可以实现并行运行,即使用PicoContainer、Maven和JVM。请告知。谢谢你提出了一个新问题。在评论中添加问题会让其他人很难找到。