XCTest çalıştırın

Bu kılavuzda, Firebase Test Lab uygulamasında 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şilebilir bir yer seçmek genellikle faydalı olur:

  1. Projenizi Xcode'da açın.
  2. macOS menü çubuğunda File (Dosya) > Project Settings... (Proje Ayarları...) seçeneğini belirleyin.
  3. Derived Data (Türetilmiş Veriler) açılır menüsünü Default Location'dan (Varsayılan Konum) Custom Location'a (Özel Konum) değiştirin.
  4. Açılır menünün altındaki alanda, Xcode'un testlerinizi göndereceği bir konum seçin. (Bu sizin FOLDER_WITH_TEST_OUTPUT)

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

Test Lab, XCTest çerçevesini kullanarak birim testleri ve kullanıcı arayüzü testleri çalıştırır. Uygulamanızın XCTest'lerini Test Lab cihazlarda çalıştırmak için uygulamayı genel bir iOS cihazda test edilecek şekilde derleyin:

  1. Xcode çalışma alanı pencerenizin üst kısmındaki cihaz açılır menüsünden Generic iOS Device'ı (Genel iOS Cihazı) seçin.
  2. macOS menü çubuğunda Product (Ürün) > Build For (Derleme Hedefi) > Testing'i (Test) 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/PROJECT_NAME.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ıların imzalandığından emin olun. Örneğin, temel hazırlık profili ve kimlik gibi imzalama ayarlarını belirterek bunu Xcode üzerinden yapabilirsiniz. Daha fazla bilgi için Apple Kod İmzalama başlıklı makaleyi inceleyin.

  2. codesign --verify --deep --verbose /path/to/MyApp.app komutunu çalıştırarak uygulama imzasını doğrulayın. "MyApp", sıkıştırılmış klasörün içindeki uygulamanın adıdır. Bu, her proje için farklıdır. Beklenen çıkış: 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 çıkış: MyTest-Runner.app: valid on disk.

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

  1. Testiniz başarıyla derlendikten sonra Test Lab platformuna yüklemek için sıkıştırın:

    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. Projenizin adını ön ek olarak içeren klasörü açın, ardından içindeki 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

Testinizi Test Lab ile çalıştırmadan önce, davranışını kalite kontrolünden geçirmek 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.