Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added
- Support configurable `NamingStrategy.Strategy` and `NamingStrategy.FeatureName` ([#105](https://github.com/cucumber/junit-xml-formatter/pull/105))

## [0.9.0] - 2025-09-11
### Changed
- Update dependency cucumber/query to 14.0.1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,19 @@ public MessagesToJunitXmlWriter(OutputStream out) {
}

public MessagesToJunitXmlWriter(NamingStrategy.ExampleName exampleNameStrategy, OutputStream out) {
this(createNamingStrategy(requireNonNull(exampleNameStrategy)), out);
this(createNamingStrategy(requireNonNull(exampleNameStrategy), LONG, EXCLUDE), out);
}

private static NamingStrategy createNamingStrategy(NamingStrategy.ExampleName exampleName) {
return NamingStrategy.strategy(LONG).featureName(EXCLUDE).exampleName(exampleName).build();
public MessagesToJunitXmlWriter(NamingStrategy.ExampleName exampleNameStrategy, NamingStrategy.Strategy strategy, OutputStream out) {
this(createNamingStrategy(requireNonNull(exampleNameStrategy), requireNonNull(strategy), EXCLUDE), out);
}

public MessagesToJunitXmlWriter(NamingStrategy.ExampleName exampleNameStrategy, NamingStrategy.Strategy strategy, NamingStrategy.FeatureName featureNameStrategy, OutputStream out) {
this(createNamingStrategy(requireNonNull(exampleNameStrategy), requireNonNull(strategy), requireNonNull(featureNameStrategy)), out);
}

private static NamingStrategy createNamingStrategy(NamingStrategy.ExampleName exampleName, NamingStrategy.Strategy strategy, NamingStrategy.FeatureName featureName) {
return NamingStrategy.strategy(strategy).featureName(featureName).exampleName(exampleName).build();
}

private MessagesToJunitXmlWriter(NamingStrategy namingStrategy, OutputStream out) {
Expand Down
6 changes: 3 additions & 3 deletions javascript/src/makeReport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ interface ReportFailure {
stack?: string
}

export function makeReport(query: Query): ReportSuite {
export function makeReport(query: Query, customNamingStrategy: NamingStrategy = NAMING_STRATEGY): ReportSuite {
const statuses = query.countMostSevereTestStepResultStatus()
return {
time: durationToSeconds(query.findTestRunDuration()),
Expand All @@ -51,12 +51,12 @@ export function makeReport(query: Query): ReportSuite {
(status) => status !== TestStepResultStatus.PASSED && status !== TestStepResultStatus.SKIPPED
),
errors: 0,
testCases: makeTestCases(query),
testCases: makeTestCases(query, customNamingStrategy),
timestamp: formatTimestamp(query.findTestRunStarted()),
}
}

function makeTestCases(query: Query): ReadonlyArray<ReportTestCase> {
function makeTestCases(query: Query, namingStrategy: NamingStrategy): ReadonlyArray<ReportTestCase> {
return query.findAllTestCaseStarted().map((testCaseStarted) => {
const pickle = ensure(
query.findPickleBy(testCaseStarted),
Expand Down
Loading