A Swift library for creating JUnit XML test results that can be interpreted by tools such as Bamboo or Jenkins.
Sample output:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite tests="2" failures="0" disabled="0" errors="0" time="0.0013051033020019531" name="JUnitReporterTests">
<testcase classname="SwiftTestReporterTests.JUnitReporterTests" name="testReporterShouldReturnXMLForEmptySuite" time="0.0007890462875366211"></testcase>
<testcase classname="SwiftTestReporterTests.JUnitReporterTests" name="testReporterShouldReturnXMLForFailedTest" time="0.000516057014465332"></testcase>
</testsuite>
<testsuite tests="1" failures="1" disabled="0" errors="0" time="0.00021898746490478516" name="UtilsTests">
<testcase classname="SwiftTestReporterTests.UtilsTests" name="testShouldReturnProperlyClassName" time="0.00021898746490478516">
<failure message="Oh no!!"></failure>
</testcase>
</testsuite>
</testsuites>
Add SwiftTestReporter
to Package.swift
:
import PackageDescription
let package = Package(
dependencies: [
...
.package(url: "https://github.com/allegro/swift-junit.git", from: "2.0.0"),
// or for Swift 4.x
// .package(url: "https://github.com/allegro/swift-junit.git", from: .upToNextMajor(from: "1.0.0")),
]
...
targets: [
...
.testTarget(
name: "AppTests",
dependencies: [
"App",
"SwiftTestReporter"
]
),
]
)
Next, add:
import SwiftTestReporter
_ = TestObserver()
To LinuxMain.swift
. Done.
In Project Navigator
, select particular project:
Next, select test target:
Add a new property named Principal class
and set it to SwiftTestReporter.TestObserver