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-তে আপনার টেস্ট আপলোড ও রান করুন।