XCTestCase — как удалить приложение в методе установки

#swift #xctest

Вопрос:

Я пишу модульные тесты для своего приложения Swift и хотел бы удалять приложение между каждым тестовым случаем для определенных наборов. У меня уже настроено действие сценария, которое удаляет приложение до запуска всего пакета. Но я не нашел способа удалить приложение из симулятора между каждым test вызовом. Есть ли способ сделать это?

Чего я хочу, так это:

 import XCTest
@testable import My_App

class MyTests: XCTestCase {

  override func setUpWithError throws () {
    magic("xcrun simctl uninstall booted ${PRODUCT_BUNDLE_IDENTIFIER}")
  }
  
  func testTheThings() {
    // test runs with a completely fresh slate...
  }
}
 

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