创建黄瓜测试时,可以使用定义的测试定义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执行了?
答案 0 :(得分:1)
我通过创建一个单独的TestStepDefLink类找到了解决方法。然后我可以从Test和Step Defs联系这个类。 测试开始的那一刻,我得到一个TestStepDefLink对象的实例并设置testId变量。执行stepDef后,我得到testStepDefLink实例并读取testId变量的值
确实,黄瓜从未创建测试类的实例,只有StepDef类。所以我必须自己创建一个Test类实例。