private Issues getIssuesAnnotation(Scenario scenario) { List<String> issues = new ArrayList<>(); for (Tag tag : scenario.getTags()) { Matcher matcher = ISSUE_PATTERN.matcher(tag.getName()); if (matcher.matches()) { issues.add(matcher.group(1)); } } return !issues.isEmpty() ? getIssuesAnnotation(issues) : null; }
protected boolean getStatusDetailByTag(final String tagName) { return scenario.getTags().stream() .anyMatch(tag -> tag.getName().equalsIgnoreCase(tagName)) || feature.getTags().stream() .anyMatch(tag -> tag.getName().equalsIgnoreCase(tagName)); }
private TestCaseId getTestCaseIdAnnotation(Scenario scenario) { for (Tag tag : scenario.getTags()) { Matcher matcher = TEST_CASE_ID_PATTERN.matcher(tag.getName()); if (matcher.matches()) { final String testCaseId = matcher.group(1); return new TestCaseId() { @Override public String value() { return testCaseId; } @Override public Class<TestCaseId> annotationType() { return TestCaseId.class; } }; } } return null; }
@Override public void scenario(Scenario scenario) { replay(); featureElementTags = scenario.getTags(); featureElementName = scenario.getName(); featureElementRange = scenario.getLineRange(); featureElementEvents = new ArrayList<BasicStatement>(); featureElementEvents.add(scenario); }
public void scenario(Scenario scenario) { out.append("\n").append(keywords.scenario()+scenario.getName()).append("\n\n"); writeMeta(scenario.getTags()); }
private SeverityLevel getSeverityLevel(Scenario scenario) { SeverityLevel level = null; List<SeverityLevel> severityLevels = Arrays.asList( SeverityLevel.BLOCKER, SeverityLevel.CRITICAL, SeverityLevel.NORMAL, SeverityLevel.MINOR, SeverityLevel.TRIVIAL); for (Tag tag : scenario.getTags()) { Matcher matcher = SEVERITY_PATTERN.matcher(tag.getName()); if (matcher.matches()) { SeverityLevel levelTmp; String levelString = matcher.group(1); try { levelTmp = SeverityLevel.fromValue(levelString.toLowerCase()); } catch (IllegalArgumentException e) { LOG.warn(String.format("Unexpected Severity level [%s]. SeverityLevel.NORMAL will be used instead", levelString), e); levelTmp = SeverityLevel.NORMAL; } if (level == null || severityLevels.indexOf(levelTmp) < severityLevels.indexOf(level)) { level = levelTmp; } } } return level; }
public void scenario(Scenario scenario) { if (LOG.isLoggable(Level.FINE)) { LOG.log(Level.FINE, "Scenario: " + scenario.getKeyword() + " " + scenario.getName()); List<Tag> tags = scenario.getTags(); for (Tag tag : tags) { LOG.log(Level.FINE, " " + tag.getName()); } LOG.log(Level.FINE, " " + scenario.getDescription()); LOG.log(Level.FINE, " " + scenario.getComments()); } // a new scenario signifies that the previous scenario has been handled. currentScenarioResult = new ScenarioResult(scenario, currentBackground); currentBackground = null; currentFeatureResult.addScenarioResult(currentScenarioResult); }
@Override public void startOfScenarioLifeCycle(final Scenario scenario) { this.currentScenario = scenario; final Deque<Tag> tags = new LinkedList<>(scenario.getTags()); if (SCENARIO_OUTLINE_KEYWORDS.contains(scenario.getKeyword())) { synchronized (gherkinSteps) { gherkinSteps.clear(); } } else { tags.addAll(currentFeature.getTags()); } final LabelBuilder labelBuilder = new LabelBuilder(currentFeature, scenario, tags); final String uuid = UUID.randomUUID().toString(); scenarioUuids.put(scenario, uuid); final TestResult result = new TestResult() .setUuid(uuid) .setHistoryId(StepUtils.getHistoryId(scenario.getId())) .setFullName(String.format("%s: %s", currentFeature.getName(), scenario.getName())) .setName(scenario.getName()) .setLabels(labelBuilder.getScenarioLabels()) .setLinks(labelBuilder.getScenarioLinks()); if (!currentFeature.getDescription().isEmpty()) { result.setDescription(currentFeature.getDescription()); } lifecycle.scheduleTestCase(result); lifecycle.startTestCase(uuid); }
/** * Start Cucumber scenario * * @param scenario Scenario * @param outlineIteration - suffix to append to scenario name, can be null */ protected void beforeScenario(Scenario scenario, String outlineIteration) { Maybe<String> id = Utils.startNonLeafNode( RP.get(), currentFeatureId, Utils.buildStatementName(scenario, null, AbstractReporter.COLON_INFIX, outlineIteration), currentFeatureUri + ":" + scenario.getLine(), scenario.getTags(), getScenarioTestItemType() ); currentScenario = new ScenarioContext(id); }
public ScenarioExec convertScenario(Scenario scenario) { ScenarioExec scenarioExec = new ScenarioExec(scenario.getKeyword(), scenario.getName()); scenarioExec.declareLineRange(convertLineRange(scenario.getLineRange())); scenarioExec.declareTags(convertTags(scenario.getTags())); scenarioExec.declareComments(convertComments(scenario.getComments())); scenarioExec.declareDescription(scenario.getDescription()); return scenarioExec; }