Запустить пакет XCTest с помощью simctl

У меня есть пакет XCTest, который я могу запустить через xcode на симуляторе с помощью simctl . Я использую iPhone 6 iOS 9.1 simulator со следующими переменными среды:

 export SIMCTL_CHILD_TestBundleLocation="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/Tests.xctest" export SIMCTL_CHILD_XCInjectBundle="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/Tests.xctest" export SIMCTL_CHILD_XCInjectBundleInto="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/ios_app.app/ios_app" export SIMCTL_CHILD_XCTestConfigurationFilePath="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/Tests.xctest/Tests-7025D700-AA6C-4343-9C7A-92F9CC3A1C42.xctestconfiguration" export SIMCTL_CHILD_DYLD_LIBRARY_PATH="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" export SIMCTL_CHILD_DYLD_FRAMEWORK_PATH="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" 

Приложение уже установлено на симуляторе к этому моменту, и симулятор работает, и я запускаю:

 xcrun simctl launch booted uk.co.company.ios.app -NSTreatUnknownArgumentsAsOpen NO -ApplePersistenceIgnoreState YES -XCTest All 

Приложение запускается и из журнала симулятора я вижу, что пакет XCTest загружается, но тесты не запускаются. Я вышел из системы, где он, кажется, остановился, и есть частный метод _checkForTestManager , а именно _checkManagerForDaemonStateAndConnectIfAvailable . Из того, что я могу сказать, XCTest пытается подключиться к testmanagerd но не работает. Поэтому я попробовал testmanagerd kickstarting testmanagerd на симуляторе, используя:

 xcrun simctl spawn booted launchctl kickstart system/com.apple.testmanagerd 

Но это, похоже, не влияет на работу тестов, но я вижу некоторые дополнительные выходные данные в журнале симулятора:

 testmanagerd[41610]: Received new test session connection (-[XCTestManager listener:shouldAcceptNewConnection:]) testmanagerd[41610]: Initial orientation 0 testmanagerd[41610]: Test session <__NSConcreteUUID 0x7fd2bb804a00> 7025D700-AA6C-4343-9C7A-92F9CC3A1C42 requested socket (-[XCTestSession _XCT_requestSocketForSessionIdentifier:reply:]) testmanagerd[41610]: Test session <__NSConcreteUUID 0x7fd2bb804a00> 7025D700-AA6C-4343-9C7A-92F9CC3A1C42 requested socket (__57-[XCTestManager requestSocketForSessionIdentifier:reply:]_block_invoke) testmanagerd[41610]: -[XCTestManager _handleRequestForSessionWithIdentifier:] 

Но ничего после этого. По сравнению с использованием Xcode:

 testmanagerd[41309]: Test session <__NSConcreteUUID 0x7fd162b016a0> 64B7815C-A0A2-4213-9A5E-E0BB0139F35A requested socket (-[XCTestSession _XCT_requestSocketForSessionIdentifier:reply:]) testmanagerd[41309]: Test session <__NSConcreteUUID 0x7fd162b016a0> 64B7815C-A0A2-4213-9A5E-E0BB0139F35A requested socket (__57-[XCTestManager requestSocketForSessionIdentifier:reply:]_block_invoke) testmanagerd[41309]: -[XCTestManager _handleRequestForSessionWithIdentifier:] testmanagerd[41309]: Closing IDE connection before sending socket 8 to test host. testmanagerd[41309]: -[XCIDESession closeIDEConnection:] sending barrier testmanagerd[41309]: barrier flushed, closing DTXConnection to IDE, socket will not be closed testmanagerd[41309]: Socket disconnected testmanagerd[41309]: __33-[XCTestManager closeIDESession:]_block_invoke <XCIDESession: 0x7fd160514d80> testmanagerd[41309]: Considering exiting, 1 test sessions, 0 sessions with identifiers, 0 unidentified sessions... assertiond[39075]: assertion failed: 14F1021 13B137: assertiond + 12188 [93FFE0B6-5C27-387F-B32A-6EE378BBB22A]: 0x1 testmanagerd[41309]: Sending socket 8 to test host testmanagerd[41309]: __33-[XCTestManager closeIDESession:]_block_invoke <XCIDESession: 0x7fd160514d80> testmanagerd[41309]: Considering exiting, 1 test sessions, 0 sessions with identifiers, 0 unidentified sessions... testmanagerd[41309]: IDE connected over socket 7 (__47-[XCTestManagerIDEServer initWithListenSocket:]_block_invoke) testmanagerd[41309]: Created session with socket 7 testmanagerd[41309]: Handling a proxy request from the IDE testmanagerd[41309]: -[XCIDESession _IDE_initiateControlSessionForTestProcessID:] 41398 testmanagerd[41309]: Set control session <XCIDESession: 0x7fd160716f60> 

Можно ли запускать тесты через simctl таким образом?

  • Xcode потерял кнопку теста в xctest
  • Как написать модульное тестирование асинхронного метода без завершения Блок в Obj C
  • iOS - удалить завершающие нули из float без преобразования в String?
  • Xcode 5 xcodebuild unit test, похоже, возвращает статус успешно при неудачных тестах
  • iOS: как запустить XCTest на устройстве?
  • Как протестировать язык справа налево в модульных тестах iOS XCTest?
  • Использование необъявленной ошибки идентификатора в моем случае
  • Невозможно контролировать цикл событий. И ждать, пока приложение не будет работать.
  • XCTest, как выполнить segue, который представляет модальное представление и тест представленViewController
  • Доступ к проекту кода из XCTestCase - UI Test
  • Тестирование iOS: есть ли способ пропустить тесты?
  • Тестирование асинхронного модуля iOS (waitForExpectations failing) в xCode 8 / Swift 3
  • Interesting Posts
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.