Схема проекту Xcode наразі не налаштована для тестової дії


84

Я намагаюся запустити модульний тест Xcode для мого додатка iOS. Я готовий зробити це на iPad, підключеному через USB до Mac. Я намагаюся запустити тест із командного рядка, щоб пізніше викликати його від Дженкінса.

Нижче наведено те, що я зараз вводжу в командний рядок, і помилку, яку я отримую. Будь ласка, допоможіть.

Код:

xcodebuild test -scheme MyApplication -destination "platform=iOS,name=iPad"

Помилка:

Наразі схема MyApplication не налаштована для тестової дії


Здається, це не проблема, пов’язана з дженкінами, оскільки ви ще не використовуєте дженкіни. Пропоную вам прибрати тег jenkins. І шукайте тут подібні запитання, щоб побачити, допомагають вони чи ні. stackoverflow.com/questions/20237064/… stackoverflow.com/questions/25970396/…
мейнфреймер

Дякую за пропозицію. Я вже натрапив на цей приклад. Схоже, це не пов’язано безпосередньо з моєю проблемою. У моєму випадку це, мабуть, щось спільне із спільним використанням схем. У мене є кілька схем у моєму проекті Xcode, я намагався ділитися / видаляти, видаляти та відтворювати їх різними способами - все одно не везе ..
danR

Відповіді:


203

Для мене проблема полягала в тому, що до моєї схеми не додавались тести:

Редактор схем

Додавши тестові пакети до моєї схеми за допомогою кнопки '+', тоді схема може бути побудована за допомогою Xcode та xcodebuild.


3
Це також зробить, якщо ви намагаєтеся запустити їх із консолі під час відкриття проекту.
iwasrobbed

@iwasrobbed врятував мій день! це може бути однією з відповідей, а не коментарем
anoo_radha

Мені було додано схему тесту, але "Тест" не перевірявся. Перевірка, яка спрацювала,
drees

Як відкрити це меню?
Богдан Богданов

@BogdanBogdanov У верхньому лівому куті Xcode, праворуч від кнопки "Зупинити", натисніть свою схему, а потім натисніть "Редагувати схему ...".
Девід Хант

33

Для всіх, хто бореться з цією проблемою.

Моє рішення було:

  1. Виберіть Тестова мішень
  2. Управління схемою
  3. Виберіть Запустити в лівому меню
  4. Виберіть Інформація на вкладці
  5. У спадному меню виберіть Executable Target
  6. Натисніть Закрити .

18

Виправлено це, видаливши повторювані схеми з Xcode. Схеми можна додавати / видаляти / спільно використовувати / редагувати в Xcode за допомогою Продукт -> Схема -> Керування схемами .


2
Дякую! Це був підказка, яка мені потрібна, і я згадаю більш тонкий сценарій, який мене вразив: другу схему з однойменною назвою, але вбудовану в залежний проект. Здається, це також відкидає xcodebuild, оскільки це може сприяти схемі, успадкованій від залежного проекту.
danielpunkass

2
Щоб перевірити наявність дублікатів схем, запустіть: xcodebuild -workspace path/to/workspace/file -listабо xcodebuild -project path/to/project/file -list. Повторювані схеми можуть бути залишками від попередніх версій робочої області, тож простою git cleanможе бути все, що вам потрібно.
Охад Шнайдер

3
  • Ви повинні перевірити дані робочої області на Jenkins і побачити, який * .xctest вже завантажений. Потім вам доведеться перейменувати ціль тестування користувацького інтерфейсу / модуля на дані * .xctest у вашому проекті xcode, як те, що у вас є на Jenkins, а потім натиснути ще раз.
  • АБО видаліть свою робочу область від Дженкінса і знову натисніть всі дані за допомогою нової цілі тестування інтерфейсу / модуля

(Звичайно, ви повинні переконатися, що ви вже склали схему проекту.)


2

Будь ласка, виконайте наступні кроки, щоб усунути цю помилку.

  1. Виберіть схему проекту вгорі.
  2. Клацніть на Керувати схемами .
  3. Виберіть свою тестову ціль у спливаючому вікні.
  4. Не забудьте натиснути кнопку Редагувати внизу ліворуч у спливаючому вікні.
  5. Виберіть Побудувати .
  6. Установіть прапорець під пунктом " Виконати "
  7. Закрийте спливаюче вікно.


0

Моя проблема полягала в тому, що Tests.swiftфайл імпортував модуль, який більше не існував (я перейменував цілі для проекту). Переконайтесь, що всі тестові файли імпортують існуючі на даний момент модулі.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.