unitarias pruebas ios xcode swift xctest osx-server

ios - pruebas - Caso de prueba UI no muestra la cobertura de código



pruebas unitarias swift 3 (2)

Compruebe si la "Recopilación de datos de cobertura" está activa en el Esquema de prueba.

Tengo algunas pruebas escritas con XCTestCase clases de XCTestCase y quiero calcular la cobertura del código. Para la prueba regular, se muestra muy bien en mi bot, pero para las pruebas de UI siempre es 0%.

La prueba más sencilla:

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() } }

Y esto seguramente debería mostrar alguna cobertura de prueba pero no lo es. Establecí en mi código bot la cobertura habilitada:

Y el resultado:

Todavía el 0%.

Xcode 7.2 (7C68)

EDITAR: Proyecto de ejemplo: https://[email protected]/Kettu/so_34718699.git


Esto sucede si solo tienes un objetivo de prueba de UI. Añadir un objetivo de prueba de unidad. Y luego volver a ejecutar las pruebas. Esta vez podrás ver el código de cobertura.

UITestcase no proporciona datos de cobertura sin el código de prueba de la Unidad. Podrías probar esto. Tenga un botón en su controlador de vista, adjunte una acción de IB a él. Y crea la UITestcase para ello. Verifique la cobertura del código con y sin UITestcases. Verías la diferencia. La diferencia le daría la cobertura del código por parte de la UITestcase. A partir de ahora, Xcode no proporciona datos de cobertura de código por separado. Depende de la Unidad de Testcases.

Cobertura de prueba sin UI TestCase

--- Con tu código he comentado tu

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() }

de TestDemoUITests y el resultado fue este

Y con tu UITestcase es el siguiente

Es bastante evidente ahora que UITestcase se agrega a Unit Testcase para la cobertura de código.