为什么不覆盖此行?Xcode代码覆盖率

Dan*_*182 5 xcode code-coverage xctest swift

我在Xcode的代码覆盖率报告中遇到问题。从此屏幕截图中可以看到:

在此处输入图片说明

在左边的选项卡上,从断点“触碰”了第58行,在右边的选项卡上,测试通过了。在右侧选项卡上,我仅在第37行运行测试。

为什么Xcode用红色标记58行(未覆盖)?

第53行未“触及”(如果我在此处设置了断点)。使用SQLite作为数据库。

整个项目可以在这里找到

编辑:添加代码:

测试快速

func testAddFuelFail() {
  fuelsManager.dropTable()
  XCTAssertEqual(addFuel(), -1)
}
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)