Я пытаюсь найти способ пропустить сценарии в FeatureContext.php.
Я получил тест, который я выполню только в том случае, если условие верно, иначе просто будет пропущено. Моя идея состояла в том, чтобы проверить сценарий с помощью тега типа «@weeksale»
@weeksale
Scenario: test
Given I go to "/"Then I should see "Unsere Leistungen"
И в моем FeatureContext я получил условие, и если оно ложное, они просто пропустили
/**
* @beforeScenario
* @weeksale
*
* @param Behat\Behat\Event\ScenarioEvent $event
*/
public function weekSaleInTime($event)
{
$dateUrl = $this->parameters['weekSaleDatePage'];
$date = file_get_contents($dateUrl);
$dateArray = explode("\r\n", $date);
$result = $this->isCurrentDateBetween($dateArray[0], $dateArray[1]);
if($result == false)
{
//behat skip this scenario
}
Кто-нибудь идея, как я могу сказать, чтобы пропустить сценарий?
(смотрите v2.5.5)
Это работа для вашего инструмента непрерывной интеграции.
Создайте новый путь в вашем файле behat.yml следующим образом:
event:
filters:
tags: '~@event'
paths:
features: features
bootstrap: %behat.paths.features%/bootstrap
extensions:
Behat\MinkExtension\Extension:
base_url: http://<YOUR URL HERE>
javascript_session: selenium2
browser_name: <BROWSER>
selenium2:
browser: "<BROWSER>"wd_host: "http://127.0.0.1:9515/wd/hub"goutte: ~
formatter:
name: pretty,html,junit
parameters:
output_path: ,../ci/published/report.html,../ci/published
Если вы включите скрипт в инструмент непрерывной интеграции, который будет выбирать, какой из них запускать, вы должны быть в пути.
Если вы запускаете тесты в эти даты вручную, измените «events» на «default», и он будет работать как обычно, удаляя все сценарии, отмеченные «@event».
Над своим сценарием просто добавьте тег сказать @weeksale
в вашем примере
при выполнении вашего сценария запустите команду
вот — теги «~ @ недель»
~
(отрицание) не запускает конкретный помеченный сценарий.