/ / Добавяне на тестовете за Swift Unit към проект за смесен език Xcode - цел-c, xcode, бърза, единична проверка

Добавяне на тестовете за бърза единица към проект за смесен език Xcode - цел-c, xcode, бърза, единична проверка

Как да настроите единични тестове, за да тествате класове Swift, добавени към предишен проект само за Objective-c?

Аз съм добавил класове Swift към моя проект и мога да работя с тях в други файлове Swift и Objective-c, но не мога да получа достъп до тях от моите тестови класове.

Изявлението за внос, което вярвам, е правилно @testable import MyAppModuleName което се добавя към примерния тестов клас в шаблоните на Xcode. Грешката, произведена от този ред, е Cannot import module being compiled, Тази грешка е в Xcode 7, използвайки Swift 2.

Отговори:

5 за отговор № 1

Имах подобни проблеми, работещи върху работно пространство със смесица от обект C и Swift, и исках да напиша единични тестови случаи за моите Swift файлове. По-долу са стъпките, които предприех, за да разреша проблема.

  • Зададох "Давам възможност за проверка" на "ДА" в настройките за създаване на проекта
  • Също така зададох "Определя модула" на "ДА" в настройките за настройки на проекта.
  • За редовните .swift файлове в моя проект, да речем Моето приложение, Бях ще пиша тестови случаи за, имам и двете основното "Моето приложение"и" "MyAppUnitTests"Цели, проверени под целевото членство.

След това избрах файла (ите) за изпитване на единица, обявен за "@testable import MyApp"на върха, под"внос XCTest", и само провери "MyAppUnitTests"в рамките на целевото членство. Изчистени, построени и Run и всичко работи като чар. Надявам се това да помогне.


3 за отговор № 2

Отговор, предоставен от https://twitter.com/UINT_MIN

В моя случай и двете цели (приложението и тестовете) имаха същото име на модула в настройките за създаване. Промяната на името на модула на целта за тестване разреши проблема.


1 за отговор № 3

@testable import е, когато се опитвате да импортирате код от главния си модул от тестовата ми цел.Вашият тестов код не трябва да бъде член на целевото ви приложение - трябва да имате отделна цел за тестване. Използване на тестовете за единица за детайли.