I am trying to setup test code coverage for a Swift application on Xcode 6 Beta 4.
I was able to do so in the past using ObjectiveC with Xcode 5, however I think I had to call the void __gcov_flush()
method, to trigger generation of the .gcda/.gcno files.
I set both properties for instrumentation and code coverage to YES
for the app and test targets.
However after running the tests, when I look in:
DerivedData/some subfolders/i386 all I see are files of type:
.d,.dia,.o,.swiftmodule and so on, but nothing that indicates code coverage.
Therefore I have two questions:
Thanks
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.
You can find it under the Reports navigator. (View menu > Navigators > Reports or ⌘ - command + 9 ). After you open it, under the latest Test report, you should find a Coverage report, click on that, and it will contain the coverage information of that test run.
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.
Xcode 6 Beta 4 does not have code coverage for Swift working. There is an open Apple issue with id: 17450338 against it.
Code coverage for Swift is available in Xcode 7. You can turn it on in the test settings for your scheme, by ticking the checkbox labeled "Gather coverage data."
Note that Apple has introduced a new format for the coverage data, profdata files.
Links:
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