tutorial orientado objetos estructuras español ios xcode swift import xctest

ios - orientado - ¿No se pueden importar las clases swift principales en el objetivo de prueba?



swift orientado a objetos (4)

FWIW, en Xcode 7, importe con la anotación: @testable. Ejemplo:

import Pickle @ImportTests

Luego podrás ver las clases en la finalización de código y compilación. fuente: https://www.natashatherobot.com/swift-2-xcode-7-unit-testing-access/

Estoy tratando de probar las clases en mi aplicación de iOS. Estoy tratando de importar el Pickle objetivo en mi aplicación que tiene todas mis clases en mis Pruebas PickleTests objetivo de prueba agregando import Pickle a la parte superior de mi archivo de prueba PickleTests.swift , pero sigo recibiendo un error.

El error que sigo recibiendo es: "Error al importar el encabezado de puente (ruta al encabezado de puente)" (la ruta al encabezado de puente se muestra en el error, no los paréntesis).

He intentado configurar "Definir módulo" en mi configuración de compilación para Pickle target a "Sí", pero aún no funciona. También verifiqué en la configuración de compilación que tiene la ruta correcta al archivo de encabezado de puente.

¿Alguna idea de cómo puedo configurar mis pruebas? Estoy en Xcode 6.3.2. Por favor, hágamelo saber si necesita información adicional.

Abre la imagen en una nueva pestaña para verla más grande.


Módulo de importación en la parte superior de su clase de prueba

@testable import myModuleName

Puede averiguar el nombre de su módulo en Target->Build Settings-> Product Module Name

Entonces puedes usar cualquiera de las clases que pertenecen a ese módulo. No hay necesidad de importar clases una por una.


Muchas gracias a @matt por ayudarme con este!

Haga clic derecho en las imágenes y ábralas en una nueva pestaña para verlas más grandes.

Como se discutió en github.com/CocoaPods/CocoaPods/issues/2695 el problema parecía estar en tener Cocoapods como parte del proyecto. La respuesta cerca de la parte inferior del enlace que resuelve el problema implica hacer clic en la configuración de la Aplicación y luego hacer clic en la Info proyecto (no en la configuración de sus objetivos). Allí podrás ver tus Configurations Configuraciones:

También notará que hay dos destinos en la configuración y que su configuración de Objetivo de prueba se establecerá en ninguno, mientras que su Objetivo principal se vinculará a los Cocoapods. La solución está en cambiar ese valor None junto al Objetivo de prueba a la misma cosa que tiene el Objetivo principal:

Así que ahora ambos están vinculados a los Cocoapods. Asegurarse de que su objetivo principal tenga el Defines module establecido en Yes en sus Build Settings , compile su proyecto y el error en los archivos de prueba debería desaparecer.

Además, después de hacer este arreglo, encontré otro error en el que el vinculador estaba lanzando un error quejándose de que faltaba una biblioteca en mi destino de prueba. Esta biblioteca que faltaba era otra dependencia que tenía en mi proyecto, y resolví este error asegurándome de que todas las dependencias que estaban vinculadas en el Link Binary with Libraries mi objetivo principal estaban copiadas al Link Binary with Libraries del objetivo de prueba Link Binary with Libraries en sus configuraciones de Build Phases .


No tienes que hacer esto. Puedes usar link_with en tu Podfile. En tu caso lo harías.

link_with ''Pickle'', ''PickleTests''

Y luego pod update