XCTest চালান

এই গাইড থেকে আপনি জানতে পারবেন কীভাবে Firebase Test Lab-এ টেস্টিংয়ের জন্য XCTest তৈরি করতে হয়।

ধাপ ১: আপনার প্রজেক্টের প্রাপ্ত ডেটার লোকেশন কনফিগার করুন

Xcode, আপনার তৈরি করা যেকোনও টেস্ট সহ কম্পাইল করা iOS আর্টিফ্যাক্ট, Derived Data ডিরেক্টরিতে রাখে। আপনি চাইলে, সেই ডিরেক্টরির জন্য ডিফল্ট লোকেশন রাখতে পারেন, তবে ফাইলগুলির জন্য আরও সহজে অ্যাক্সেস করা যায় এমন লোকেশন বেছে নিলে ভাল হয়, বিশেষত আপনি যদি Test Lab ঘন ঘন পরীক্ষা চালাতে চান:

  1. Xcode-এ আপনার প্রোজেক্ট খুলুন।
  2. macOS মেনু বারে, ফাইল > প্রোজেক্ট সেটিংস... বিকল্প বেছে নিন
  3. ডিরাইভ করা ডেটা ড্রপ-ডাউন মেনু থেকে ডিফল্ট লোকেশন পরিবর্তন করে কাস্টম লোকেশন করুন।
  4. ড্রপ-ডাউন মেনুর নিচে, Xcode-এর আউটপুট আপনার টেস্টের জন্য একটি লোকেশন বেছে নিন। (এটি আপনার FOLDER_WITH_TEST_OUTPUT)

ধাপ ২: একটি সাধারণ টেস্ট ফাইল তৈরি করুন

Test Lab XCTest ফ্রেমওয়ার্ক ব্যবহার করে ইউনিট টেস্ট ও UI টেস্ট রান করে। Test Lab ডিভাইসে আপনার অ্যাপের XCTests রান করাতে, কোনও জেনেরিক iOS ডিভাইসে পরীক্ষা করার জন্য এটি বিল্ড করুন:

  1. আপনার Xcode ওয়ার্কস্পেস উইন্ডোর উপরে ডিভাইস ড্রপ-ডাউন থেকে, সাধারণ iOS ডিভাইস বেছে নিন।
  2. macOS মেনু বারে, প্রোডাক্ট > এর জন্য তৈরি করুন > টেস্টিং বিকল্প বেছে নিন।

বিকল্প হিসেবে, আপনি কমান্ড লাইন থেকে XCTest তৈরি করতে পারেন। টার্মিনালে নিম্নলিখিত কমান্ড ব্যবহার করুন:

প্রোজেক্ট

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

কর্মস্থান

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

ধাপ ৩: আপনার টেস্টে সই করুন ও যাচাই করুন

  1. অ্যাপ ও টেস্টের সব আর্টিফ্যাক্ট সাইন করা আছে কিনা তা নিশ্চিত করুন। যেমন, আপনি Xcode-এর মাধ্যমে এটি করতে পারেন। এর জন্য আপনাকে প্রোভিশনিং প্রোফাইল ও পরিচয়ের মতো সাইনিং সেটিংস নির্দিষ্ট করতে হবে। আরও তথ্যের জন্য, Apple কোড সাইনিং দেখুন।

  2. codesign --verify --deep --verbose /path/to/MyApp.app রান করিয়ে অ্যাপের সিগনেচার যাচাই করুন, যেখানে "MyApp" হল আনজিপ করা ফোল্ডারের মধ্যে থাকা অ্যাপের নাম। প্রতিটি প্রোজেক্টের ক্ষেত্রে এটি আলাদা হয়। প্রত্যাশিত আউটপুট হল MyApp.app: valid on disk।

  3. আপনি XCUITest চালালে, আপনাকে টেস্ট ও রানার যাচাই করতে হবে codesign --verify --deep --verbose /path/to/MyTest-Runner.app চালিয়ে। এখানে "MyTest" হল আনজিপ করা ফোল্ডারের মধ্যে রানারের নাম। প্রতিটি প্রোজেক্টের ক্ষেত্রে এটি আলাদা আলাদা হয়। প্রত্যাশিত আউটপুট হল MyTest-Runner.app: valid on disk।

ধাপ ৪: আপনার অ্যাপ প্যাকেজ করুন এবং আপলোড করার জন্য পরীক্ষা করুন

  1. আপনার টেস্ট সফলভাবে তৈরি হয়ে গেলে, Test Lab-এ আপলোড করার জন্য এটি জিপ করুন:

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

এছাড়াও, আপনি টেস্ট ফাইল ম্যানুয়ালি কম্প্রেস করে আপনার টেস্ট প্যাকেজ করতে পারেন:

  1. Finder খুলুন এবং FOLDER_WITH_TEST_OUTPUT-এ নেভিগেট করুন।

  2. প্রিফিক্স হিসেবে আপনার প্রোজেক্টের নাম আছে এমন ফোল্ডার খুলুন, তারপর Build/Products ফোল্ডারে নেভিগেট করুন।

  3. ফোল্ডার বেছে নিন Debug-iphoneos এবং YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun এবং তারপরে সেগুলি কম্প্রেস করুন।

ধাপ ৫: (ঐচ্ছিক) আপনার টেস্ট লোকালি রান করুন

Test Lab-এর মাধ্যমে আপনার পরীক্ষা চালানোর আগে, এর আচরণ কোয়ালিটি চেক করতে USB-কানেক্ট করা ডিভাইসের মাধ্যমে লোকালি এটি চালাতে পারবেন:

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

পরবর্তী ধাপ

Firebase কনসোল অথবা gcloud CLI-তে আপনার টেস্ট আপলোড ও রান করুন।