Xcode 7 UI Tests, кнопка записи неактивна

Вот почему исходное выражение не сработало.

Из man bash :

Расширение скобки выполняется перед любыми другими расширениями , и в результате сохраняются любые символы, специальные для других расширений. Это строго текстовое. Bash не применяет синтаксическую интерпретацию контекста расширения или текста между фигурными скобками.

Итак, расширение скобки - это что-то, сделанное раньше, как чисто текстовое макро-операции, до расширения параметра .

Корпуса представляют собой высоко оптимизированные гибриды между макропроцессорами и более формальными языками программирования. Чтобы оптимизировать типичные варианты использования, язык становится более сложным, и некоторые ограничения принимаются.

Рекомендация

Я бы предложил придерживаться Posix1 функции. Это означает использование for i in <list>; do, если список уже известен, в противном случае используйте while или seq, как в:

#!/bin/sh

limit=4

i=1; while [ $i -le $limit ]; do
  echo $i
  i=$(($i + 1))
done
# Or -----------------------
for i in $(seq 1 $limit); do
  echo $i
done

1. Bash - отличная оболочка, и я использую ее в интерактивном режиме , но я не ставил bash-isms в мои скрипты. Скриптам может понадобиться более быстрая оболочка, более безопасная, более встроенная. Им может потребоваться запустить все, что установлено как / bin / sh, и тогда есть все обычные аргументы pro-standards. Помните shellshock, aka bashdoor?

29
задан Tamás Sengel 13 March 2018 в 23:51
поделиться

16 ответов

FWIW: У меня была эта проблема, и оказалось, что я пытался запустить симулятор не в той ОС.

Я пытался использовать iOS8.x, а UITesting работает только в iOS9 +.

Переключите версию симулятора, и появится кнопка записи.

12
ответ дан Le Mot Juiced 13 March 2018 в 23:51
поделиться

Он сразу вернулся, когда я переключился на правильную схему. Убедитесь, что вы используете схему UI testing, поскольку тестовый регистратор пользовательского интерфейса не может работать ни на одной другой.

0
ответ дан Wills 13 March 2018 в 23:51
поделиться

Вы должны импортировать класс просмотра, который хотите протестировать. Затем поместите курсор в метод теста.

-2
ответ дан lynulzy 13 March 2018 в 23:51
поделиться

Убедитесь, что в каждом файле имеется только один подкласс XCTestCase. Вы хотите, чтобы имена файлов и классов совпадали.

По моему опыту, даже если у вас работают тесты пользовательского интерфейса, если вы добавите новый подкласс вашего рабочего подкласса XCTestCase в тот же файл, кнопка записи будет отключена (хотя все другие пользовательские интерфейсы тестирования будут продолжать работать).

0
ответ дан blackp 13 March 2018 в 23:51
поделиться

Проверьте ваш редактор версий и исправьте его

enter image description here

enter image description here

2
ответ дан Rajneesh071 13 March 2018 в 23:51
поделиться

Как бы глупо это не звучало, Мне пришлось выбрать другой файл на боковой панели слева и вернуться к моему файлу с контрольными примерами. После этого кнопка сразу стала активной.

1
ответ дан Tamás Sengel 13 March 2018 в 23:51
поделиться

Я нашел другое решение, которое я не видел здесь.

Если вы создаете подкласс XCTestCase, измените свой класс так, чтобы он наследовал от него, сохраните файл , измените его на имя вашего подкласса. Не нужно ни чистить, ни строить.

Для моего проекта у меня есть подкласс XCTestCase, назовем его APPMyTestCase. Я часто нахожу, что кнопка записи неактивна, и иногда маленькие зеленые / красные кнопки рядом с каждым из методов тестирования также не позволяют запускать их по отдельности. Если я переключаю свой подкласс обратно на XCTestCase на секунду, все снова работает.

Изменить это:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

На это:

class APPLoadingPageUITests: XCTestCase {
    // tests here
}

А потом вернуться к этому:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

Это исправило это для меня .

1
ответ дан Gordonium 13 March 2018 в 23:51
поделиться

Я сделал несколько вещей, чтобы включить кнопку записи:

  1. (Необязательно, рекомендуется) - удалите все схемы TEST и цели TEST для своего проекта, начните заново с создания новой цели UITest.
  2. Убедитесь, что ваша схема UITest и схема запуска основного проекта указывают на одну и ту же цель.
  3. Попробуйте удалить другие схемы UITest, если они могут быть легко воссозданы / не имеют абсолютного значения.
  4. Продукт> (Нажмите и удерживайте клавишу ALT)> Очистить папку сборки
  5. Продукт> Очистить (только для безопасности)
  6. Закрыть проект, выйти из Xcode.
  7. Выйти из симулятора.
  8. Наконец, снова откройте Xcode, загрузите ваш проект. Перейдите к вашему файлу UITest и маленькая красная кнопка радости должна быть доступна для использования.

Кроме того, убедитесь, что ваша цель сборки / запуска установлена ​​на iPhone X 9.X.

1
ответ дан Frogger 13 March 2018 в 23:51
поделиться

Это немного глупо, но пропущено в некоторых статьях, которые я читал.

Убедитесь, что у вас есть цель UITesting, обычная цель тестирования не сделала этого для меня.

3
ответ дан leopic 13 March 2018 в 23:51
поделиться

У меня была та же проблема, и моя установка была правильной, iOS> = 9.0, цель была добавлена.

Проблема заключалась в индексировании XCode, которое заняло некоторое время (около 1 часа), после того как индексирование было выполнено, кнопка записи становится активной.

12
ответ дан bneely 13 March 2018 в 23:51
поделиться

Была такая же проблема в Xcode 8.3.

Я удалил метод tearDown

   override func tearDown() {
        super.tearDown()

    }

, так как не нужно было его использовать. Как только я добавил его обратно, кнопка записи была включена.

5
ответ дан Tal Zion 13 March 2018 в 23:51
поделиться

Чтобы активировать красную кнопку, необходимо навести курсор на метод проверки:

enter image description here

34
ответ дан pableiros 13 March 2018 в 23:51
поделиться

Я тоже застрял на этом. Для записи вы должны быть в классе, который Xcode распознает как содержащий тесты. Добавьте файл в свою цель тестирования пользовательского интерфейса с помощью чего-то вроде:

import Foundation
import XCTest

class MyTests: XCTestCase {
    func testSomething() {

    }
}

Сохраните файл, очистите ваш проект и переключитесь на другой файл, а затем вернитесь к этому. Кнопка записи должна быть доступна.

15
ответ дан Maldron 13 March 2018 в 23:51
поделиться

Для меня проблема была в том, что была открыта панель «Редактор версий». Как только я вернулся к помощнику редактора, все заработало.

4
ответ дан Chase Holland 13 March 2018 в 23:51
поделиться

Метод тестирования должен начинаться со слова test, чтобы Xcode распознал его и разрешил запись, когда курсор находится внутри метода.

Одним из признаков того, что XCode распознал метод, является ромб, появляющийся слева от названия метода:

3
ответ дан Manuel 13 March 2018 в 23:51
поделиться

Когда я создал Цель UITest, новая схема не была одновременно создана. Так, я должен был создать новую схему с тестовой целью, которую я создал. Это включило кнопку записи.

0
ответ дан 27 November 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: