从StepDefs访问黄瓜测试

时间:2013-10-04 13:21:47

标签: java cucumber cucumber-jvm

创建黄瓜测试时,可以使用定义的测试定义feature文件,并在同一个包中定义具有完全相同名称的class文件以运行测试。 (我现在将Cucumber.options留给他们。)

据我所知,Cucumber将查看相同的包及其Step Definitions文件的所有子包,以执行当前方案中的相应步骤。 (再次,我将Cucumber.options留给他们。)

有没有办法找到正在执行的测试类和处理正在执行的当前步骤的StepDefs类之间的链接?

src/
\_ test/
   \_ java/
   |  \_ test.cucumber.package
   |     \_ MyTest1.class
   |     \_ MyTest2.class
   |     \_ StepDefs1.class
   |     \_ StepDefs2.class
   \_ resources/
      \_ test.cucumber.package
         \_ MyTest1.feature
         \_ MyTest2.feature

因此,MyTest1.class执行MyTest1.feature中定义的步骤。可以在StepDefs1.class或StepDefs2.class中定义这些步骤的实现。 MyTest2也是如此。

1)我如何知道StepDefs1或StepDefs2中是否定义了一个步骤?

2)当执行一个步骤时,我怎么知道它是否为MyTest1或MyTest2执行了?

1 个答案:

答案 0 :(得分:1)

我通过创建一个单独的TestStepDefLink类找到了解决方法。然后我可以从Test和Step Defs联系这个类。 测试开始的那一刻,我得到一个TestStepDefLink对象的实例并设置testId变量。执行stepDef后,我得到testStepDefLink实例并读取testId变量的值

确实,黄瓜从未创建测试类的实例,只有StepDef类。所以我必须自己创建一个Test类实例。