XCTest çalıştırın

Bu kılavuzda, Firebase Test Lab'da test etmek için XCTest'in nasıl hazırlanacağı açıklanmaktadır.

1. adım: Projenizin türetilmiş veri konumunu yapılandırın

Xcode, oluşturduğunuz testler de dahil olmak üzere derlenmiş iOS yapılarını Derived Data dizinine yerleştirir. İsterseniz bu dizinin varsayılan konumunu koruyabilirsiniz ancak özellikle Test Lab ile sık sık test yapacaksanız dosyalar için daha kolay erişilebilen bir yer seçmek genellikle faydalıdır:

  1. Projenizi Xcode'da açın.
  2. macOS menü çubuğunda Dosya > Proje Ayarları...'yı seçin.
  3. Türetilmiş Veriler açılır listesini Varsayılan Konum'dan Özel Konum'a değiştirin.
  4. Açılır listenin altındaki alanda, Xcode'un testlerinizi çıkış olarak vereceği bir konum seçin. (Bu, FOLDER_WITH_TEST_OUTPUT)

2. adım: Genel bir test dosyası oluşturun

Test Lab, XCTest çerçevesini kullanarak birim testlerini ve kullanıcı arayüzü testlerini çalıştırır. Uygulamanızın XCTests'lerini Test Lab cihazda çalıştırmak için uygulamayı Genel iOS Cihaz'da test edilecek şekilde oluşturun:

  1. Xcode çalışma alanı pencerenizin üst kısmındaki cihaz açılır listesinden Generic iOS Device'ı (Genel iOS Cihazı) seçin.
  2. macOS menü çubuğunda Product (Ürün) > Build For (Şunun İçin Oluştur) > Testing'i (Test Etme) seçin.

Alternatif olarak, XCTest'inizi komut satırından oluşturabilirsiniz. Terminalde aşağıdaki komutu kullanın:

proje

xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

çalışma alanı

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

3. adım: Testinizi imzalayın ve doğrulayın

  1. Uygulamadaki ve testteki tüm yapıtların imzalandığından emin olun. Örneğin, sağlama profili ve kimlik gibi imzalama ayarlarını belirterek bunu Xcode üzerinden yapabilirsiniz. Daha fazla bilgi için Apple Code Signing başlıklı makaleyi inceleyin.

  2. codesign --verify --deep --verbose /path/to/MyApp.app komutunu çalıştırarak uygulama imzasını doğrulayın. Burada "MyApp", sıkıştırılmamış klasördeki uygulamanın adıdır. Bu, her proje için farklıdır. Beklenen çıktı MyApp.app: valid on disk.

  3. XCUITest çalıştırıyorsanız codesign --verify --deep --verbose /path/to/MyTest-Runner.app komutunu çalıştırarak testi ve çalıştırıcıyı doğrulamanız gerekir. Burada "MyTest", sıkıştırılmamış klasördeki çalıştırıcının adıdır. Bu, her proje için farklıdır. Beklenen çıktı MyTest-Runner.app: valid on disk.

4. adım: Uygulamanızı paketleyin ve yükleme için test edin

  1. Testiniz başarıyla oluşturulduktan sonra Test Lab'ya yüklemek için testi zipleyin:

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

Test dosyalarını manuel olarak sıkıştırarak da testinizi paketleyebilirsiniz:

  1. Finder'ı açıp FOLDER_WITH_TEST_OUTPUT konumuna gidin.

  2. Proje adınızın önek olarak kullanıldığı klasörü açın ve ardından Build/Products klasörüne gidin.

  3. Debug-iphoneos ve YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun klasörlerini seçip sıkıştırın.

5. adım: (İsteğe bağlı) Testinizi yerel olarak çalıştırın

Test Lab ile testinizi çalıştırmadan önce, davranışını kontrol etmek için USB ile bağlı bir cihazla yerel olarak çalıştırabilirsiniz:

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

Sonraki adımlar

Testinizi Firebase konsolunda veya gcloud CLI'da yükleyip çalıştırın.