我试图找到一种方法来跳过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
}
任何人都知道我怎么能告诉你跳过一个场景?
(behat v2.5.5)
答案 0 :(得分:1)
这是您的持续集成工具的工作。
在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”的所有方案。
答案 1 :(得分:0)
在您的方案之上,只需在示例
中添加标记@weeksale
即可
执行场景时运行命令 behat --tags&#39;〜@ weeksale&#39;
~
(否定)不会运行特定的标记方案。