tutorial the programming lenguaje language apple swift xcode xctest

swift - the - No se puede cargar el módulo subyacente para XCTest



the swift programming language pdf (12)

Acaba de agregar su archivo / clase de pruebas al objetivo principal y no al objetivo de la prueba por error. Simple como eso.

Solución:

1) Elimine el archivo de prueba de la lista "Compilar orígenes" en la pestaña "Fases de compilación" para el objetivo principal

2) Agregue el mismo archivo en "Compilar orígenes" en la pestaña "Fases de compilación" para el objetivo de prueba

Debe resolver el problema.

Estoy trabajando rápidamente en Xcode y, de forma predeterminada, crea un archivo de prueba que hace referencia a XCTest.

Cuando configuro la membresía de destino para mi proyecto principal, causa este error

No se puede cargar el módulo subyacente para XCTest

Si no se establece esta membresía de destino, las pruebas se ejecutan correctamente y todo funciona bien.

PD: Soy nuevo en Swift y probablemente sea una pregunta tonta (por favor, ilumíneme)


Asegúrese de que la Membresía de destino esté marcada para todos los módulos cuando se seleccione el marco de prueba. Puede ver la opción de Membresía de destino seleccionando Ver-> Utilidades-> Mostrar inspector de archivos


Después de un montón de solución de problemas y rebotando en las páginas de como esta, pude encontrar un detalle que no se mencionó en las otras páginas de solución de problemas de prueba de unidad iOS.

Si su proyecto usa CocoaPods, asegúrese de incluir su objetivo de prueba anidado dentro del objetivo de su aplicación principal. Es posible que su podfile no lo incluya si creó su objetivo de prueba después de ejecutar pod init . Su podfile debería verse así:

target ''YourApp'' do target ''YourAppTests'' do inherit! :search_paths # Pods for testing end end

Recuerde guardar su podfile y ejecutar pod install después de hacerlo.

¡Espero eso ayude!


El proyecto principal no se vincula con el marco XCUnit. Debe crear un objetivo de prueba separado para su proyecto, si aún no existe, y agregar sus archivos de origen de prueba a ese objetivo.

  1. Seleccione su proyecto en el Navegador de proyectos. Esto abrirá la configuración del proyecto en el editor.
  2. Haga clic en el botón "+" en la parte inferior de la columna que enumera sus objetivos.
  3. Si está trabajando en una plantilla de proyecto iOS , seleccione iOS > Test > iOS Unit Testing Bundle .

    Si está trabajando en una plantilla de proyecto OS X , seleccione OS X > Test > OS X Unit Testing Bundle


Este problema ocurre dos veces en su proyecto.

  1. Cuando no agrega UnitTestingBundle en su proyecto cuando crea un nuevo proyecto.
  2. Cuando instalas CocoaPods en tu proyecto en algún momento, no siempre.

1: respuesta:

  • Ir al archivo Haga clic en Archivo.

  • Luego verá Primera opción Nuevo Haga clic en ella.

  • Después de hacer clic en él, verá Algunas opciones Haga clic en Destino.

  • Y luego, en la barra de búsqueda, se resuelve el paquete de prueba de la unidad IOS y el problema Agregar.

  • si el compilador no puede darle permiso para agregar esto, intente con el segundo método cuando se indica a continuación.

2. Responda al problema de CocoaPod:

  • Ir al producto Haga clic en el producto.

  • Haga clic en limpiar o presione cmd + k.

  • El problema está resuelto.


Hice todo lo anterior, pero aún no se me permitió acceder a los métodos que quería probar. Pero antes de escribir cualquier caso de prueba construí el proyecto una vez y luego los métodos fueron accesibles para probar. Así que pruébalo y avísame si resolvió algún problema.


Justo como @Alfishe mencionó anteriormente:

Debe eliminar los archivos de prueba de las Compiler Sources del Compiler Sources en Build Phases

Como se muestra abajo


Recibo este error si creo un objetivo de marco dinámico de macOS, que se vincula a XCTest.framework (¡el objetivo es un objetivo de marco, no un objetivo de prueba!).

En este caso, el problema se resuelve agregando

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks

a "Configuración de compilación / Rutas de búsqueda de marco" del proyecto.


Si bien la respuesta aceptada resuelve este problema la mayoría de las veces, hay una forma más de encontrar este error.

Si ya te has asegurado de que:

Como lo señalaron @pwc @ nick-ny otros

  1. El archivo ClassTest.swift para la membresía de destino asegurándose de que solo se adjunte al objetivo de prueba.
  2. ClassTest.swift no está visible debajo del objetivo principal de la aplicación> Generar orígenes> Compilar orígenes

Esto es lo que más puede verificar:

en su archivo .podspecs

Asegúrese de que su source_files no incluye directa o indirectamente el directorio de prueba.

por ejemplo :

s.source_files = ["Classes/**/*.{swift}", "Classes/**/*.{xib}"] s.exclude_files = ["Classes/Exclude", "Classes/MyPodProjTests/"]

Tenga en cuenta que Classes/**/*.{swift} incluye todo lo que MyPodProjTests el hecho de que el directorio MyPodProjTests debe excluirse.

Solución:

s.source_files = ["Classes/MyPodProj/**/*.{swift}", "Classes/**/*.{xib}"]

Nota: Este es un caso extremadamente extremo y un error completamente humano, pero pensé que valdría la pena señalarlo.


Tal vez sea un poco tarde, pero lo que tienes que hacer es:

Haga clic en Archivo> Nuevo> Destino> Paquete de prueba de unidad iOS.

Y luego agregue sus pruebas allí. Esto funcionó para mí. El problema fue que no seleccioné crear pruebas unitarias cuando creé mi proyecto. Espero que esto ayude a alguien.


Tuve el mismo problema y la solución para mí fue:

  1. Selecciona mi esquema
  2. Editar esquema ...
  3. Luego, cuando se abra la ventana de configuración del esquema, seleccione la pestaña izquierda llamada "Prueba" para ser redirigido aquí:
  4. Como puede ver, mis UITests no se agregan aquí, pero existen en mi proyecto, así que solo tuve que tocar el botón más y seleccionar mi objetivo de UITests de esta manera:
  5. Luego toque el botón "Agregar" y cierre la vista de configuración
  6. Termine con un proyecto limpio e intente nuevamente, debería funcionar
  7. Y no olvide verificar eso también: https://developer.apple.com/library/archive/qa/qa1954/_index.html

Espero que esta respuesta ayude.

PD: un último pensamiento en mi objetivo de prueba en la configuración de compilación tuve que verificar estas propiedades que no se configuraron correctamente:

DEBUG_INFORMATION_FORMAT = dwarf; ONLY_ACTIVE_ARCH = YES; VALIDATE_PRODUCT = NO;


Verifique que el archivo en cuestión no esté en el objetivo principal, sino solo en el objetivo de prueba. Solo el objetivo de prueba tendrá ese marco para importar.