এক্সসিস্টেস্টের জন্য অন্তর্নিহিত মডিউলটি লোড করা যায় না


180

আমি এক্সকোডে দ্রুতগতিতে কাজ করছি এবং ডিফল্টরূপে এটি একটি টেস্ট ফাইল তৈরি করে যা এক্সসিটিস্টের উল্লেখ করে।

আমি যখন আমার মূল প্রকল্পটিতে লক্ষ্য সদস্যপদ সেট করি তখন এটি এই ত্রুটি ঘটায়

এক্সসিস্টেস্টের জন্য অন্তর্নিহিত মডিউলটি লোড করা যায় না

যদি এই টার্গেট সদস্যপদটি সেট না করা হয় তবে টেস্টগুলি সঠিকভাবে চলে এবং সবকিছু ঠিকঠাক কাজ করে।

পিএস: আমি দ্রুত পাল্টে এসেছি এবং এটি সম্ভবত একটি বোবা প্রশ্ন (দয়া করে আমাকে আলোকিত করুন)


17
কোনও বোবা প্রশ্ন তৃণমূল নেই, কেবল বোবা প্রশ্নকারী। ;-) এই পড়ার প্রত্যেকের মতো দুর্দান্ত প্রশ্নটির একই সমস্যা হবে।
ল্যান্স কাইন্ড

উত্তর:


167

মূল প্রকল্পটি XCUnit কাঠামোর সাথে লিঙ্ক করে না। আপনার প্রকল্পের জন্য একটি পৃথক পরীক্ষার লক্ষ্য তৈরি করা উচিত, যদি এটি ইতিমধ্যে উপস্থিত না থাকে এবং আপনার লক্ষ্য উত্স ফাইলগুলি যুক্ত করে।

  1. প্রকল্প নেভিগেটরে আপনার প্রকল্প নির্বাচন করুন। এটি সম্পাদকটির মধ্যে প্রকল্পের সেটিংস খুলবে।
  2. আপনার লক্ষ্যগুলি তালিকাভুক্ত করার জন্য কলামের নীচে "+" বোতামটি ক্লিক করুন।

এখানে চিত্র বর্ণনা লিখুন

  1. আপনি যদি কোনও আইওএস প্রকল্পের টেম্পলেটটিতে কাজ করছেন তবে নির্বাচন করুন iOS > Test > iOS Unit Testing Bundle

    আপনি যদি কোনও ওএস এক্স প্রকল্পের টেম্পলেটটিতে কাজ করছেন তবে নির্বাচন করুন OS X > Test > OS X Unit Testing Bundle


3
ইতোমধ্যে আইওএসের জন্য এটি আইওএস ইউআইটিস্টিং বান্ডেল (এটি ইউআই টেস্টগুলির জন্য ব্যবহার করুন) বা আইওএস ইউনিট টেস্টিং বান্ডেল (এটি ইউনিট পরীক্ষার জন্য ...)
কুজডু

183

দ্বিগুণ পরীক্ষা করে দেখুন যে প্রশ্নে থাকা ফাইলটি মূল টার্গেটে নয় বরং পরিবর্তে কেবল পরীক্ষার লক্ষ্যমাত্রায় রয়েছে। আমদানি করার জন্য কেবলমাত্র পরীক্ষার টার্গেটটিতে সেই কাঠামো থাকবে।


16
যদি এটি সাহায্য করে। আপনার 'নন টেস্ট' টার্গেট নির্বাচন করুন -> পর্যায়ক্রমে বিল্ড করুন -> সংকলন উত্স। আপনার "ClassTest.swift" সাধারণ বিল্ড টার্গেটে না রয়েছে তা নিশ্চিত করুন।
নিক এন

এবং যদি এটি মূল বান্ডেল এবং টেস্টিং বান্ডলে থাকে তবে আপনি কীভাবে এটি প্রধান বান্ডেল থেকে সরিয়ে ফেলবেন।
জেমস রবিনসন

1
ধন্যবাদ @ নিকএন, আপনি যে সঠিক সমস্যাটি নিয়ে আসছিলেন তা সঠিকভাবে তুলে ধরেছিলেন এবং এখনই তা ঠিক করা হয়েছে!
নাইস্তা

যদি এটি পরীক্ষার টার্গেটে থাকে তবে আমি আমার প্রধান লক্ষ্যটিতে আমার প্রধান পরীক্ষার কোনও পদ্ধতি অ্যাক্সেস করতে পারি না।
ইউকেডাটাগীক

ধন্যবাদ এটি একটি কবজ মত কাজ করে। কেবল পরীক্ষার ফাইলগুলি সরিয়ে কাজ করা হয়েছে।
সিসিআর

32

আপনি নিজের পরীক্ষাগুলি ফাইল / শ্রেণিকে স্রেফ মূল টার্গেটে যুক্ত করেছেন এবং ভুল করে পরীক্ষার টার্গেটে নয়। যে হিসাবে সহজ।

সমাধান:

1) মূল টার্গেটের জন্য "বিল্ড পর্যায়সমূহ" ট্যাবে "উত্সগুলি সঙ্কলন করুন" তালিকা থেকে পরীক্ষা ফাইলটি সরান

2) পরীক্ষার টার্গেটের জন্য "বিল্ড পর্যায়সমূহ" ট্যাবে "উত্সগুলি সঙ্কলন করুন" তে একই ফাইল যুক্ত করুন

এটি অবশ্যই সমস্যার সমাধান করবে


15

আমি যদি কোনও ম্যাকোস ডায়নামিক ফ্রেমওয়ার্ক লক্ষ্য তৈরি করি তবে এই ত্রুটিটি পেয়েছি which XCTest.framework (লক্ষ্যটি একটি কাঠামোর লক্ষ্য, পরীক্ষার লক্ষ্য নয়!)।

এক্ষেত্রে সমস্যাটি যুক্ত করে সমাধান করা হয়

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks

প্রকল্পের "বিল্ড সেটিংস / ফ্রেমওয়ার্ক অনুসন্ধানের পথগুলি" তে যান।


পারফেক্ট! ধন্যবাদ!
ল্যান্স কিন্ড

9
আরও ভাল: $(PLATFORM_DIR)/Developer/Library/Frameworksআপনি যদি বিভিন্ন নামে Xcode এর একাধিক সংস্করণ ইনস্টল করেন (যেমন রিলিজ এবং বিটা সংস্করণ)।
রব মায়োফ 22'14

ধন্যবাদ @ অরবমায়ফ এটি সঠিক সমাধান ছিল ;-)
অলিভার পারমাইন 21

সমর্থনের পরীক্ষার জন্য কাঠামো তৈরি করার সময় এটি সঠিক উত্তর।
ড্যানিয়েল উড

7

এটির মতো স্ট্যাক ওভারফ্লো পৃষ্ঠাগুলি প্রচুর সমস্যার সমাধান ও উত্থাপনের পরে, আমি এমন একটি বিবরণ সন্ধান করতে সক্ষম হয়েছি যা অন্য আইওএস ইউনিট পরীক্ষার সমস্যা সমাধানের পৃষ্ঠাতে উল্লিখিত হয়নি।

যদি আপনার প্রকল্পটি কোকোপডগুলি ব্যবহার করে তবে আপনার পরীক্ষার লক্ষ্যটিকে আপনার মূল অ্যাপ্লিকেশনটির টার্গেটের ভিতরে অন্তর্ভুক্ত করে নিশ্চিত করুন। আপনি চালনার পরে যদি আপনার পরীক্ষার লক্ষ্য তৈরি করে থাকেন তবে আপনার পডফাইলে এতে অন্তর্ভুক্ত নাও হতে পারে pod init। আপনার পডফাইলে দেখতে এমন কিছু দেখা উচিত:

target 'YourApp' do
    target 'YourAppTests' do
        inherit! :search_paths
        # Pods for testing
    end
end

আপনার পোডফিল সংরক্ষণ এবং চালাতে ভুলবেন না pod install পরে ।

আশা করি এটা সাহায্য করবে!


5

এটি সম্ভবত কিছুটা দেরি করে তবে আপনাকে যা করতে হবে তা হ'ল:

ফাইল> নতুন> লক্ষ্য> আইওএস ইউনিট পরীক্ষার বান্ডিলটিতে ক্লিক করুন।

এবং তারপরে সেখানে আপনার পরীক্ষা যুক্ত করুন। এটি আমার পক্ষে কাজ করেছে। সমস্যাটি হ'ল আমি যখন আমার প্রকল্পটি তৈরি করেছি তখন ইউনিট পরীক্ষাগুলি তৈরি করতে নির্বাচন করিনি। আশা করি এটি কাউকে সাহায্য করবে।


2

আপনার প্রকল্পে এই সমস্যাটি দুইবার ঘটে।

  1. যখন কোনও নতুন প্রকল্প তৈরি করবেন আপনি যখন আপনার প্রকল্পে ইউনিট টেস্টিংবাণ্ডল যুক্ত করবেন না।
  2. আপনি যখন কখনও কখনও আপনার প্রকল্পে কোকোপডগুলি ইনস্টল করেন।

1: উত্তরঃ

  • ফাইল ক্লিক করুন ফাইল ক্লিক করুন।

  • তারপরে আপনি প্রথম অপশনটি এতে ক্লিক করুন।

  • এটিতে ক্লিক করার পরে আপনি লক্ষ্যমাত্রায় কিছু অপশন ক্লিক করুন।

  • এবং তারপরে অনুসন্ধানবারে অনুসন্ধানের আইওএস ইউনিট পরীক্ষার বান্ডিল এবং অ্যাড সমস্যা সমাধান করা হয়।

  • যদি সংকলক আপনাকে এটি যুক্ত করার অনুমতি দিতে না পারে তবে নীচে যখন দেওয়া হবে তখন দ্বিতীয় পদ্ধতিটি ব্যবহার করে দেখুন।

2. উত্তর কোকোপড সমস্যা:

  • প্রোডাক্ট ক্লিক করুন পণ্য ক্লিক করুন।

  • ক্লিনে ক্লিক করুন বা সিএমডি + কে টিপুন।

  • সমস্স্যা সমাধান হযে গেছে.


2

গৃহীত উত্তরটি বেশিরভাগ সময় এই সমস্যাটি সমাধান করে, আপনি এই ত্রুটিটি দেখতে পাবার আরও একটি উপায় রয়েছে।

যদি আপনি ইতিমধ্যে এটি নিশ্চিত করে থাকেন:

@Pwc @ নিক-এন এবং অন্যদের দ্বারা নির্দেশিত হিসাবে

  1. ClassTest.swiftএখন এটা আবার হয় লক্ষ্য সদস্যপদের জন্য ফাইল শুধুমাত্র টেস্টিং লক্ষ্য সংযুক্ত।
  2. ClassTest.swiftহয় না অধীনে প্রধান অ্যাপ্লিকেশানটিতে লক্ষ্য> সোর্স বিল্ড> কম্পাইল সোর্স প্রোফাইল

আপনি এখানে যা পরীক্ষা করতে পারেন তা এখানে:

আপনার .podspecsফাইল

আপনার source_filesপ্রত্যক্ষ বা অপ্রত্যক্ষভাবে পরীক্ষার ডিরেক্টরি অন্তর্ভুক্ত নয় তা নিশ্চিত করুন ।

উদাহরণ স্বরূপ :

s.source_files = ["Classes/**/*.{swift}", "Classes/**/*.{xib}"]
s.exclude_files = ["Classes/Exclude", "Classes/MyPodProjTests/"]

নোটের Classes/**/*.{swift}মধ্যে ডিরেক্টরিটি MyPodProjTestsঅবশ্যই বাদ দেওয়া উচিত তা এই বিষয়টিকে ওভাররাইড করে এমন সমস্ত কিছু রয়েছে ।

সমাধান:

s.source_files = ["Classes/MyPodProj/**/*.{swift}", "Classes/**/*.{xib}"]

দ্রষ্টব্য: এটি অত্যন্ত প্রান্তের মামলা এবং সম্পূর্ণ মানব ত্রুটি তবে আমি ভেবেছিলাম এটি মূল্যবান হবে it


দুর্দান্ত মন্তব্য, আমি আমার মধ্যে সবকিছু অন্তর্ভুক্ত ছিল s.source_files। ধন্যবাদ!
মৌরিসিও চিরিনো

1

পরীক্ষার কাঠামোটি নির্বাচন করা হলে লক্ষ্য মেম্বারশিপটি সমস্ত মডিউলগুলির জন্য পরীক্ষা করা বন্ধ রয়েছে তা নিশ্চিত করুন। আপনি ভিউ-> ইউটিলিটিস-> ফাইল ইন্সপেক্টর দেখিয়ে নির্বাচন করে লক্ষ্য সদস্যতার বিকল্পটি দেখতে পারেন


1

আমার ক্ষেত্রে, আমি একটি ব্যক্তিগত পোডের জন্য পরীক্ষা করছিলাম, তাই পডস্পেকটিতে ছিল:

s.test_spec 'Tests' do |test_spec|
test_spec.source_files = 'Tests/*.swift' end

তবে পডফাইলে আমি পরীক্ষার স্পেসিফিকেশন আনতে ভুলে গেছি:

target 'MyApp' do
use_frameworks!
pod 'CoconutLib', '~> 1.0', :testspecs => ['Tests'] end

0

আমি উপরের সমস্তগুলি করেছি, তবে এখনও আমি যে পদ্ধতিগুলি পরীক্ষা করতে চেয়েছিলাম সেগুলি অ্যাক্সেস করার অনুমতি ছিল না। তবে আমি লেখার আগে কোনও পরীক্ষার ক্ষেত্রে প্রকল্পটি একবার তৈরি করেছিলাম এবং তারপরে পদ্ধতিগুলি পরীক্ষার জন্য অ্যাক্সেসযোগ্য ছিল। সুতরাং এটি চেষ্টা করে দেখুন এবং এটি যদি কোনও সমস্যার সমাধান করে তা আমাকে জানান।


0

আমার একই সমস্যা ছিল এবং আমার সমাধানটি হ'ল:

  1. আমার স্কিম নির্বাচন করুন
  2. স্কিম সম্পাদনা করুন ...
  3. তারপরে স্কিম কনফিগারেশন উইন্ডোটি খুললে এখানে পুনঃনির্দেশিত হতে "টেস্ট" নামে বাম ট্যাবটি নির্বাচন করুন: এখানে চিত্র বর্ণনা লিখুন
  4. আপনি দেখতে পাচ্ছেন যে আমার ইউআইটিএসগুলি এখানে যুক্ত করা হয়নি তবে আমার প্রকল্পে বিদ্যমান তাই আমার কেবল প্লাস বোতামটি ট্যাপ করতে হবে এবং আমার ইউআইটিস্টের লক্ষ্যটি এইভাবে নির্বাচন করতে হবে: এখানে চিত্র বর্ণনা লিখুন
  5. তারপরে "যুক্ত করুন" বোতামটি আলতো চাপুন এবং কনফিগারেশন ভিউটি বন্ধ করুন
  6. প্রকল্পের ক্লিন দিয়ে শেষ করুন এবং আবার চেষ্টা করুন এটির কাজ করা উচিত
  7. এবং এটিও যাচাই করতে ভুলবেন না: https://developer.apple.com/library/archive/qa/qa1954/_index.html

আশা করি এই উত্তরটি সাহায্য করবে।

PS: বিল্ড সেটিংসে আমার পরীক্ষার টার্গেটে একজন শেষবার ভাবেন আমাকে সঠিকভাবে কনফিগার করা হয়নি এমন সম্পত্তিগুলি পরীক্ষা করতে হয়েছিল:

DEBUG_INFORMATION_FORMAT = dwarf; 
ONLY_ACTIVE_ARCH = YES;
VALIDATE_PRODUCT = NO;

0

ঠিক যেমন উপরে উল্লিখিত @ আলফিশ:

আপনাকে পরীক্ষা ফাইলগুলি Compiler Sourcesনীচে থেকে সরিয়ে ফেলতে হবেBuild Phases

নিচে দেখানো হয়েছে


এখানে চিত্র বর্ণনা লিখুন


1
যদি আপনি এটি করেন তবে আপনি পরীক্ষাগুলি কার্যকর করতে পারবেন না, যতদূর আমি জানি
হুয়ান কুর্তি


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.