我要在功能文件之前执行以下一些操作。
public void beforeFeature() {
File path = new File("D:\\AccelareWorkFitComplete\\ExtentsReports\\");
File[] filename =path.listFiles();
for(File fi:filename)
{
if (fi.toString().contains("Automation"))
{
fi.delete();
}
}
}
答案 0 :(得分:1)
我将使用Background(或@Before
在后台执行)。官方文档为here。
Feature File:
Background:
Given Files are deleted
Scenerio: Test 1
Then There are no files.
然后在我的步骤定义文件中执行以下操作:
private static boolean testsInitialized = false
@Given("^Given files are deleted;$")
public void deleteFiles() {
if (!testsInitialized) {
initializetest();
testInitialized = true;
}
如果您绝对需要等效于Junit @BeforeClass的版本,那么从Cucumber 2.4.0开始,以下类适用。
您可以将其放置在test / java / cucumber / runtime中。
package cucumber.runtime; //cannot change. can be under /test/java
import cucumber.runtime.io.ResourceLoader;
import cucumber.runtime.snippets.FunctionNameGenerator;
import gherkin.pickles.PickleStep;
import java.util.List;
public class NameThisClassWhatever implements Backend {
private Glue glue;
private List<String> gluePaths;
@Override
public void loadGlue(Glue glue, List<String> gluePaths) {
this.glue = glue;
this.gluePaths = gluePaths;
//Any before steps here
}
@Override
public void disposeWorld() {
//any after steps here
}
@Override
public void setUnreportedStepExecutor(UnreportedStepExecutor executor) { }
@Override
public void buildWorld() { }
@Override
public String getSnippet(PickleStep p, String s, FunctionNameGenerator fng) {
return null;
}
public NameThisClassWhatever(ResourceLoader resourceLoader) { }
}
答案 1 :(得分:0)
beforeAll
和afterAll
挂钩可用于整个黄瓜套件,而不是用于每个功能。
返回了几个版本,其中有beforeFeature
和afterFeature
钩子,但在较新的版本中已删除。
总而言之,您可以返回几个版本以利用before / after功能的功能,也可以在before挂钩中创建解决方法。