I'm experiencing an issue with the report of code coverage in Xcode. As you can see from this screenshot:
On the left tab, line 58 is "touched" from the break-point, and on the right tab, the test passes. While on the right tab, I'm running only the test on line 37.
Why does Xcode sign the line 58 in red, as not covered?
Line 53 is not "touched" (if I set a break-point there). Using SQLite as a database.
The entire project is available here.
EDIT: Adding code:
Test.swift
func testAddFuelFail() {
fuelsManager.dropTable()
XCTAssertEqual(addFuel(), -1)
}
FuelsManager.swift
func addFuel(dateOfFuel: Date, mileageOnSave: Int, quantityOfFuel: Double, pricePerUnitOfFuel: Double) -> Int64 {
let insertFuel = fuelsTable.insert(date <- dateOfFuel, mileage <- mileageOnSave, quantity <- quantityOfFuel, pricePerUnit <- pricePerUnitOfFuel)
do {
let id = try database!.run(insertFuel)
return id
} catch {
print(error)
}
return -1
}
Running Tests and Coverage Locally in Xcode To enable code coverage, click the scheme editor in the toolbar. Select the CodecovDemo scheme and choose Edit Scheme. Select the Test action on the left. Check the Code Coverage box to gather coverage data.
To view the coverage reports: Select the Report Navigator in the navigator pane on the left (⌘8) Select the latest Test run in the navigator pane. Select the Coverage tab in the editor.
To calculate the code coverage percentage, simply use the following formula: Code Coverage Percentage = (Number of lines of code executed by a testing algorithm/Total number of lines of code in a system component) * 100.
To view code coverage, select the Coverage tab. Xcode will display the overall code coverage for the framework, and we can expand this to get coverage data on individual files and functions.
Actually its a bug reported here.
- Coverage number varies between multiple runs on XC 10 on the same binary. Like in first run it shows x% vs in another run it will show y% keeping the same code.
- Coverage number/Number of tests varies while running on 11.4 simulator and 12.0 simulator, both ran on XC 10
- Number of tests also a little different like in some run it was 5507 tests vs in some runs it was 5506.
XC 10 certainly came with lots of bugs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With