سؤال

لقد قمت بتثبيت Calabash كجراب في مشروعي.يتم تثبيت الجوهرة نفسها باستخدام المجمع.عندما أحاول تشغيل الخيار لهدف Calabash الخاص بي، تبدأ الميزات الأولى ولكنها تتوقف فقط ولا يتم تشغيل جهاز المحاكاة مطلقًا:

$ bundle exec cucumber
Feature: Ensure Login and Oauth Screen Functionality

  Scenario: Verify Welcome Page                 # features/Sign_in.feature:3

مزيد من التفاصيل من التثبيت الخاص بي:

# xcode installation location
$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer

# xcode version
$ xcodebuild -version
Xcode 5.1.1
Build version 5B1008

# calabash version
$ bundle exec calabash-ios version
0.9.168

# calabash < 0.9.169 or Xamarin IDE users
# start your app manually in the simulator or from Xcode and then launch a console
$ bundle exec calabash-ios console
> server_version
{
                        "outcome" => "SUCCESS",
                         "app_id" => "[REDACTED]",
               "simulator_device" => "iPhone",
                        "version" => "0.9.168",
                       "app_name" => "[REDACTED]",
    "iphone_app_emulated_on_ipad" => false,
                          "4inch" => true,
                            "git" => {
        "remote_origin" => "git@github.com:jmoody/calabash-ios-server.git",
               "branch" => "master",
             "revision" => "adde106"
    },
                    "app_version" => "2.0.1",
                    "iOS_version" => "7.1",
                         "system" => "x86_64",
                      "simulator" => "iPhone Simulator 463.9.41, iPhone OS 7.1 (iPhone Retina (4-inch)/11D167)"
}
هل كانت مفيدة؟

المحلول

حسنًا، هذا يعني أن كالاباش لا يمكنه تحديد موقع تطبيقك.

جرب هذا أولاً،

  1. التعليق على تعريف app_bundle_path على yourproject/الميزات/الدعم/01_launch.rb مثل #APP_BUNDLE_PATH = "~/..../../myApp-cal.app" لذلك يمكن لجوهرة Calabash تحديد موقع التطبيق تلقائيًا.
  2. افتح وحدة التحكم، وانتقل إلى مجلد المشروع منها.ثم أدخل gem install calabash-cucumber سيؤدي هذا إلى تثبيت جوهرة كالاباش، ولا بأس في تشغيلها مرة أخرى حتى لو قمت بتثبيتها مسبقًا فلا يوجد أي ضرر.ثم أدخل calabash-ios setup في تلك المحطة، سيؤدي هذا إلى إنشاء هدف كالاباش وإضافة إطار عمل كالاباش إلى مشروع iOS الخاص بك.تم ذكر المزيد من التفاصيل حول عملية الإعداد في هنا.
  3. افتح الآن ملف المشروع في محرر xcode (يمكنك رؤية calabash.framework تمت إضافته إلى مجموعة إطار عمل مشروعك بنجاح.) حدد هدف yourApp-cal والمحاكي الذي تريد تنظيفه، وقم ببناء هدف yourApp-cal وتشغيله على جهاز المحاكاة الخاص بك.
  4. ثم أوقفه ثم عد إلى وحدة التحكم هذه calabash-ios console ستبدأ وحدة التحكم في تشغيل وحدة تحكم روبي التي يمكنك العمل بها مع التطبيق.الآن (أثناء وجود جهاز المحاكاة على شاشتك ولكن تطبيقك يعمل في الخلفية على جهاز المحاكاة هذا). start_test_server_in_background يجب أن يأتي تطبيقك إلى المقدمة.إذا نجح ذلك، فيمكن لـ calabash العثور على تطبيقك وتشغيله على جهاز محاكاة.
  5. تذكر فقط إذا قمت بإنشاء إصدار تطبيق في مجلد منفصل باستخدام أمر xcodebuild أو برنامج نصي أو شيء من هذا القبيل، فهذا هو الوقت المناسب لتعيين متغير APP_BUNDLE_PATH.

نصائح أخرى

عملت إجابة تشاتورا لأحد زملائي، ولكن كان على زوجين منا العثور على حل آخر.

حدثت القضية بالنسبة لنا بعد إدخال cocoapods.في Xcode، فتحت المنظم ولاحظنا أن لدينا مجلد بيانات مشتق لبرنامج BP (قبل القرون) وآخر لمساحة مساحة العمل مع القرون.قمت بحذف مجلد البيانات المشتقة لمشروع BP ثم كل شيء يعمل.

كان لدي إعداد Calabash قبل القيام بذلك، لذلك قد يكون الحل في حالتي مزيجا من إجابة تشاتورا وألغام الألغام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top