Начало записи теста не относится к тесту на огурец. И, как вы обнаружили, очень трудно выполнить то, что вы хотите.
Вот где Крючки для огурцов могут помочь:
@Binding
public class TestRecorder {
private final VideoRecorder videoRecorder;
public TestRecorder() {
this(new VideoRecorder(...));
}
public TestRecorder(VideoRecorder videoRecorder) {
this.videoRecorder = videoRecorder;
}
@Before
public void BeginRecording(Scenario scenario) {
String scenarioName = scenario.getName();
// do something with scenarioName and start recording...
videoRecorder.start();
}
@After
public void StopRecording(Scenario scenario) {
String scenarioName = scenario.getName();
// Stop recording, and use scenarioName to save to a file
videoRecorder.stop();
}
}
Перед началом сценария,начать запись видео. Класс TestRecorder может объявлять закрытые поля для хранения ссылки на видеорегистратор. Объект Scenario
, переданный в хуки сценариев до и после (BeginRecording и StopRecording), предоставляет вам информацию о сценарии, включая имя. Этого должно быть достаточно для сохранения видеозаписи в файл с использованием имени сценария в качестве имени файла.
И, поскольку это всего лишь POJO, вы можете написать несколько модульных тестов для функции записи видео (еслиВы действительно хотели).
Теперь ваши тесты на огурец могут оставаться сфокусированными на тестируемой системе, а не на тестировании системы, не выполняющем мониторинг:
Feature: Do Something
Background:
Given I navigate to the login page
When I submit username and password
Then I should be logged in
Scenario: Scenario Name
When I do the thing
Then it should do something
Scenario: Scenario Name 2
When I do the thing
Then it should do something
Нет необходимости передавать имя сценария изфайл функции. Все это делается "за кулисами" в крючках с огурцом.