gpt4 book ai didi

java - 是否有某种运行 ID 对于单个 "run"中的所有功能都相同?

转载 作者:行者123 更新时间:2023-12-02 13:09:58 25 4
gpt4 key购买 nike

我们的测试存储了有关每个已执行测试的大量信息,这些信息排序在某些目录中。如果来自同一运行的所有结果都存储在例如由日期/id 命名的目录中,则将是实用的。这样就可以轻松浏览历史记录并跟踪内容。目前这是一项手 Action 业,每次运行后都必须重命名输出目录以保留记录。

我们可以轻松地在 Cucumber 之外编写脚本以实现自动化,但是我想知道这是否可以通过 Cucumber 框架来完成。一种简单的方法(如果可能)是创建一个 runId 变量并在同一运行中的所有测试之间传递它。然而,据我了解,不可能在场景和功能之间传输对象/变量。依赖注入(inject)似乎只允许步骤之间使用相同的对象。在 Cucumber 框架中是否还有另一个地方我们可以启动 runId 变量并将其传递给所有测试?或者也许我可以从框架中的某个地方获得 cucumber 中类似的东西?

例如,如果我有步骤定义:

public class StepSy {
File runDirectory;
DataObject data;

@Before
public void before() {
runDirectory = new File(someObjectPassedDown.getRunId());
}

@Given("^Condition (.*)$")
public void condition() {
/*Some conditions*/
}

@When("^I do (.*)$")
public void perform(String toDo) {
/*Some action*/
}

@Then("^I expect (.*)$")
public void expect(String expectedValue) {
/*Some assertion*/
}

@After
public void after(Scenario scenario) {
data.writeTo(runDirectory, scenario.getName());
}
}

还有一个功能:

Feature: Tests

Scenario: Test01
Given Condition A
When I do B
Then I expect C

Scenario: Test02
Given Condition D
When I do E
Then I expect F

我可以运行这个功能两次,我会得到两个目录:

MyTestRuns
├── Run_17.05.2017_130156
│ ├── Test01
│ └── Test02
├── Run_16.05.2017_163402
│ ├── Test01
│ └── Test02

最佳答案

如果我正确地回答了您的问题,您希望每次运行都有一个唯一的目录。在类中设置一个静态标志,其中包含目录初始化的状态。它将确保在第一个场景运行时创建该目录,而不再创建。并创建一个静态方法来生成运行 ID...

public class StepSy {
static File runDirectory;
private static boolean fileInitFlag = false;
DataObject data;


@Before
public void before() {
if(!fileInitFlag) {
runDirectory = new File(FileIdGenerator.getRunId());
fileInitFlag= true;
}
}



@After
public void after(Scenario scenario) {
data.writeTo(runDirectory, scenario.getName());
}
}

关于java - 是否有某种运行 ID 对于单个 "run"中的所有功能都相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44003337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com