cucumber如何知道要运行哪个java文件?

cucumber如何知道要运行哪个java文件?,cucumber,cucumber-java,Cucumber,Cucumber Java,但它是如何做到这一点的 如果我复制了这个类,那么它似乎运行了两次(然后爆炸了,我没有真正调查)。它是否只是在包中查找通过annotation/java8命名匹配的任何方法?还是发生了别的事情 我很好奇,因为如果你有两个给定的不同场景,但是这些类在同一个包中,这是一个问题吗?有解决方案吗?Java和Gherkin之间的映射是以另一种方式完成的。也就是说,使用Java方法注释的正则表达式来查找匹配的步骤 如果您有两个相同的given,那么将执行相同的Java方法。这意味着不能用完全相同的方式对两个J

但它是如何做到这一点的

如果我复制了这个类,那么它似乎运行了两次(然后爆炸了,我没有真正调查)。它是否只是在包中查找通过annotation/java8命名匹配的任何方法?还是发生了别的事情


我很好奇,因为如果你有两个给定的不同场景,但是这些类在同一个包中,这是一个问题吗?有解决方案吗?

Java和Gherkin之间的映射是以另一种方式完成的。也就是说,使用Java方法注释的正则表达式来查找匹配的步骤

如果您有两个相同的given,那么将执行相同的Java方法。这意味着不能用完全相同的方式对两个Java方法进行注释。您将得到的错误是一个模棱两可的步骤。但是当你仔细考虑的时候,犯错误可能不是你最大的问题。如果你在系统中的两个地方说同一件事,但意思不同,那么你可能会遇到比抱怨步骤不明确的错误更大的问题


解决方案是什么?划分你的系统。如果你愿意的话,你可以把一个模块中的东西看作是一个有界的上下文,在这个上下文中的任何地方都是这样。如果创建一个新模块,可以将其视为另一个有界上下文,并使用相同的单词表示不同的内容。

Java和Gherkin之间的映射是以另一种方式完成的。也就是说,使用Java方法注释的正则表达式来查找匹配的步骤

如果您有两个相同的given,那么将执行相同的Java方法。这意味着不能用完全相同的方式对两个Java方法进行注释。您将得到的错误是一个模棱两可的步骤。但是当你仔细考虑的时候,犯错误可能不是你最大的问题。如果你在系统中的两个地方说同一件事,但意思不同,那么你可能会遇到比抱怨步骤不明确的错误更大的问题

解决方案是什么?划分你的系统。如果你愿意的话,你可以把一个模块中的东西看作是一个有界的上下文,在这个上下文中的任何地方都是这样。如果创建一个新模块,则可以将其视为另一个有界上下文,并使用相同的单词表示不同的内容

Given i have a cucumber feature
When I run the feature from my java class with annotations to a certain  package  
Then cucumber knows to go and find the right class