UItesting用例不显示代码覆盖率
我有一些使用XCTestCase
类写的testing,我想计算代码覆盖率。 对于常规testing,它在我的机器人中很好地显示,但对于UItesting总是0%。
最简单的testing:
import XCTest class FAQUITests: XCTestCase { let app = XCUIApplication() override func setUp() { super.setUp() app.launch() } func openFaqView() { app.navigationBars["NavigationBar"].buttons["FAQ"].tap() } func testFaq() { openFaqView() app.tables.cells.elementBoundByIndex(0).tap() } }
这肯定应该显示一些testing覆盖,但事实并非如此。 我在我的bot代码覆盖范围内启用:
结果:
仍然是0%。
Xcode 7.2(7C68)
编辑:示例项目: https://Kettu@bitbucket.org/Kettu/so_34718699.git
检查testingscheme中的“聚集覆盖数据”是否有效。
如果您只有UItesting目标,就会发生这种情况。 添加一个unit testing目标。 然后再次运行testing。 这一次你会看到代码覆盖。
没有unit testing代码,UITestcase不提供覆盖数据。 你可以试试这个。 在ViewController中有一个button,附加一个IBAction。 并创build它的UITestcase。 使用和不使用UITestcases检查代码覆盖率。 你会看到不同之处。 差异会给你的代码覆盖UITestcase。 截至目前,Xcode不提供,单独编码覆盖数据。 这取决于unit testing用例。
testing覆盖没有UI TestCase
—用你的代码我已经注释掉了你的
func testStepper(){
let steppersQuery = app.steppers steppersQuery.buttons["Increment"].tap() steppersQuery.buttons["Decrement"].tap() } func testSegmented() { app.buttons["Second"].tap() app.buttons["Fourth"].tap() app.buttons["Third"].tap() app.buttons["First"].tap() }
从TestDemoUITests和结果是这个
和你的UITestcase一样,如下所示
现在,UITestcase增加了unit testing用例的代码覆盖率。