Tengo un problema con el informe de cobertura de código en Xcode. Como puede ver en esta captura de pantalla:
En la pestaña de la izquierda, la línea 58 se "toca" desde el punto de ruptura, y en la pestaña de la derecha, la prueba pasa. Mientras estoy en la pestaña derecha, estoy ejecutando solo la prueba en la línea 37.
¿Por qué Xcode firma la línea 58 en rojo, como no cubierta?
La línea 53 no está "tocada" (si establezco un punto de interrupción allí). Uso de SQLite como base de datos.
El proyecto completo está disponible aquí .
EDITAR : Agregar código:
prueba.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 }En realidad es un error reportado aquí .
- El número de cobertura varía entre múltiples ejecuciones en XC 10 en el mismo binario. Al igual que en la primera ejecución, muestra x% frente a que en otra ejecución mostrará y% manteniendo el mismo código.
- El número de cobertura/el número de pruebas varía mientras se ejecuta en el simulador 11.4 y el simulador 12.0, ambos se ejecutaron en XC 10
- El número de pruebas también es un poco diferente, ya que en algunas ejecuciones fueron 5507 pruebas frente a en algunas ejecuciones fue 5506.
Ciertamente, XC 10 vino con muchos errores.
Saque el punto de interrupción y ejecute la prueba. Una vez que la prueba haya terminado de ejecutarse, la información de cobertura debería cambiar.