এক্সকোড ইউনিট পরীক্ষায় @ টেস্টেবল ব্যবহার করার সময় "এই জাতীয় কোনও মডিউল নেই"


168

আমি সম্প্রতি Xcode 7 বিটা 5. আমি আগের একটি প্রকল্পে একটি ইউনিট পরীক্ষা যোগ করার চেষ্টা আপডেট, কিন্তু আমি ত্রুটির বার্তা "জাতীয় কোনও মডিউল [myModuleName]" এ পাচ্ছি @testable import myModuleNameলাইন।

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

আমি চেষ্টা করেছিলাম

  • Optionক্লিন বিল্ড ফোল্ডার দিয়ে প্রকল্প পরিষ্কার করা
  • "পরীক্ষাযোগ্যতা সক্ষম করুন" (ডিবাগ) বিল্ড বিকল্পগুলিতে হ্যাঁ সেট করা হয়েছিল তা পরীক্ষা করে
  • পরীক্ষাগুলির লক্ষ্য মুছে ফেলা এবং তারপরে আইওএস ইউনিট পরীক্ষার বান্ডেলটি পুনরায় যুক্ত করা হচ্ছে

এর কোনওটিই এই প্রকল্পের জন্য কাজ করেনি (তবে আমি অন্য প্রকল্পে কাজ করার জন্য টেস্টিং পেয়েছি)। অন্য কারও কি এই সমস্যা আছে এবং এর সমাধান হয়েছে?



আপনি যদি এক্সকোডবিল্ডের সাহায্যে কমান্ড লাইন থেকে তৈরি করছেন তবে আপনার বিল্ড কমান্ডের জন্য ওয়ার্কস্পেস পতাকা যুক্ত করার বিষয়টি নিশ্চিত করুন। আমি আমার ট্র্যাভিসগুলিতে এই সমস্যাটি সমাধান করেছিলাম।
ভিক্টর 'ক্রিস' ক্যাবলাল

উত্তর:


210

আপনি যে মডিউল নামটি দিয়ে আমদানি করার চেষ্টা করছেন দয়া করে তা পরীক্ষা করুন @testable import "ModuleName"। মডিউলটির নামটি একই হওয়া উচিতTarget->Build Settings-> Product Module Name


5
বেশিরভাগ ক্ষেত্রে, এটি পণ্য মডিউলের নাম সম্পর্কে। চেক spaceএবং_
onwayway133

5
-এবং সম্পর্কে সতর্কতা অবলম্বন করা উচিত _। আমার একটি প্রকল্পের -নামে বিয়োগ রয়েছে, তবে _পরিবর্তে মডিউলটির আন্ডারস্কোর রয়েছে
বেরিলিয়াম

4
আমি ""ধারণাটি ব্যবহার করেছি , এবং পেয়েছিExpected identifier in import declaration
অ্যাবড

1
@ onmyway133 অত্যন্ত নিকটে ছিল। আমার ক্ষেত্রে, আমার প্রকল্পের নাম থেকে আমার একটি পৃথক পণ্য মডিউল নাম ছিল। আপনার মডিউলটির নামটি অনুসন্ধান করতে Build Settingsআপনার প্রকল্পটি নির্বাচন করুন (পরীক্ষা বা ইউআই পরীক্ষা নয়) তারপরে PRODUCT_MODULE_NAMEযা যা প্রদর্শিত হবে তার জন্য অনুসন্ধান করুন যা যা করা উচিত@testable import
jonmecer

115

উত্তরটি আমার পক্ষে কাজ করেছিল

উত্তরটি ছিল যে আমার প্রকল্পে আমার কিছু ত্রুটি ছিল যা বিল্ডটিকে ব্যর্থ করে তুলছিল। (কোডে এটি প্রতিটি দিন আপনার বাগ স্ট্যান্ডার্ড ছিল)) আমি ত্রুটিগুলি স্থির করে অন্য একটি পরিষ্কার ও বিল্ডিং করার পরে এটি কার্যকর হয়েছিল।

নোট করুন যে এই ত্রুটিগুলি প্রথমে প্রদর্শিত হয়নি। তাদের দেখানোর জন্য পেতে:

  • আপনার সম্পূর্ণ টেস্ট ফাইলটি মন্তব্য করুন যা আপনাকে "এ জাতীয় কোনও মডিউল" ত্রুটি দিচ্ছে না।
  • আপনার প্রকল্পটি আবার চালানোর চেষ্টা করুন।

যদি অন্য কোনও ত্রুটি থাকে তবে তাদের এখনই দেখাতে হবে। এগুলি ঠিক করুন এবং তারপরে আপনার পরীক্ষার ফাইল কোডটি অসম্পূর্ণ করুন। আমার জন্য "এরকম কোনও মডিউল" ত্রুটি ছিল না।


এটি যদি অন্য লোকেদের সমস্যার সমাধান না করে তবে আপনি নিম্নলিখিতটিও দেখতে পারেন:

বিল্ড ফোল্ডারটি পরিষ্কার করুন

পণ্য মেনু খুলুন, ধরে রাখুন Optionএবং "ক্লিন বিল্ড ফোল্ডার ..." ক্লিক করুন

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

নিশ্চিত করুন যে পরীক্ষার যোগ্যতা হ্যাঁ সেট করা আছে

প্রকল্প নেভিগেটরে আপনার প্রকল্পের নামটি ক্লিক করুন। বিল্ড সেটিংস নির্বাচন করুন এবং বিকল্পগুলি তৈরি করতে নীচে স্ক্রোল করুন। নিশ্চিত করুন যে পরীক্ষার যোগ্যতা হ্যাঁ (ডিবাগের জন্য)।

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

আপনার পরীক্ষাগুলির লক্ষ্য মুছুন এবং পুনরায় যুক্ত করুন

আপনি যদি অন্য কাজগুলি করেন তবে আমার ধারণাটি সম্ভবত আপনার এটি করার দরকার নেই। তবে আপনি যদি তা করেন তবে আপনি ইতিমধ্যে যে কোনও ইউনিট টেস্ট লিখেছেন তা সংরক্ষণ করতে ভুলবেন না।

প্রকল্প নেভিগেটরে আপনার প্রকল্পের নামটি ক্লিক করুন। তারপরে আপনার পরীক্ষার লক্ষ্য নির্বাচন করুন। এটিকে মুছতে নীচের দিকে বিয়োগ (-) বোতামটি ক্লিক করুন।

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

তারপরে প্লাস (+) বোতামটি ক্লিক করুন এবং আবার যুক্ত করতে আইওএস ইউনিট টেস্টিং বান্ডিলটি চয়ন করুন। আপনি দেখতে পাচ্ছেন, আপনি একইভাবে একটি ইউআই টেস্টিং বান্ডেলও যুক্ত করতে পারেন।

আরও কয়েকটি ধারণা

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

অথবা ...

আপনি যদি কাজ করে এমন অন্য কিছু খুঁজে পান তবে নীচে একটি মন্তব্য বা উত্তর দিন।

সম্পর্কিত


2
এখানে এক্সকোড 7 বিটা 5 সহ সমস্ত একই সমস্যা রয়েছে Unfortunately দুর্ভাগ্যক্রমে উপরের পদক্ষেপগুলি এর সমাধান করছে বলে মনে হচ্ছে না - মডিউলটি এখনও এটি সম্পর্কিত, "এই জাতীয় কোনও মডিউল 'ইউটিলিটি' নেই।" আপনার স্ক্রিনশট থেকে একমাত্র পার্থক্য হ'ল আমি এটি ইউআই টেস্ট ফোল্ডার (আমার ক্ষেত্রে গ্লিম্পুলসইউআইটিস্টস) দিয়ে কাজ করার চেষ্টা করছি। @ টেস্টেবল সম্ভবত ইউআই পরীক্ষার লক্ষ্য নিয়ে কাজ করে না?
জ্যাক

5
*** গুরুত্বপূর্ণ *** আপনি যদি নিজের পরীক্ষার লক্ষ্যটি মুছে ফেলেন এবং পুনরায় যুক্ত করেন তবে এটি আপনার বিদ্যমান পরীক্ষাগুলিকে ওভাররাইট করে একটি ফাঁকা পরীক্ষার টেম্পলেট পুনরায় তৈরি করবে। এটি করার আগে আপনার পরীক্ষার উত্সগুলি সংরক্ষণ করতে ভুলবেন না।
পাউলান

2
আমার জন্য এমনকি আমার ব্যক্তিগত ক্লাসগুলিও টাইপ করার সময় প্রদর্শিত হচ্ছে না ... অবশেষে আমি পণ্য> ক্লিন, পুনরায় আরম্ভ করা এক্সকোড করেছি। এটি পুনরায় চালু হওয়ার সাথে সাথে, সূচি সম্পন্ন করতে কয়েক সেকেন্ড সময় দিয়েছিল এবং তারপরে ভয়েলা আমার সমস্ত রেফারেন্স পরীক্ষার লক্ষ্য সদস্য হিসাবে প্রতিটি শ্রেণি অন্তর্ভুক্ত না করেই প্রদর্শিত হয়েছিল।
রাজীব জৈন 10'16

1
এছাড়াও যদি আপনি এটি চেষ্টা না করে থাকেন, তবে বামদিকে আপনার অনুপস্থিত কাঠামোটিতে ক্লিক করুন, তারপরে ডানদিকে "টার্গেট সদস্যতা" নির্বাচন করুন এবং এটি আপনার ইউনিট পরীক্ষার টার্গেটের অন্তর্ভুক্ত করুন।
আলবোগদানো

3
আপনার মূল লক্ষ্য -> "পণ্য মডিউল নাম" এর সেটিংস তৈরি করতে যান এবং দেখুন যে এটি আপনার পরীক্ষায় আমদানির চেষ্টা করার মডিউল নামের সাথে মেলে কিনা।
f0rz

64

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

আপনার পরীক্ষার টার্গেটে:

Build Settings -> iOS Deployment Target -> iOS<same as the target you are testing>

যে করছেন পর, আমি সেট করতে ছিল Enable Bitcodeথেকে Noটেস্ট বান্ডেল করে।
pableiros

2
লল এটি কাজ করে তবে এক্সকোড থেকে বোকা কীভাবে এটি অন্যর কোনও ত্রুটি ছুঁড়ে না ফেলে
জে ডঃ

31

সুতরাং এইভাবে আমি পূর্বের পরামর্শগুলি থেকে সমস্ত প্রস্তাবিত সমাধানের চেষ্টা করার পরে আমার কোডটি কাজ করতে চলেছি।

  • আমি প্রকল্পের বিল্ড সেটিংসে 'টেস্টাবিলিটি সক্ষম' সেট করুন 'ইয়েস' তে
  • আমি আমার প্রকল্পের বিল্ড সেটিংসে 'ইয়েস' তে 'মডিউল সংজ্ঞায়িত' সেট করেছিলাম।
  • নিয়মিত .swift ফাইল (গুলি) আমার প্রকল্প মধ্যে, বলতে MyApp , আমি লেখার পরীক্ষার বিষয় চালু ছিল, আমি উভয় প্রধান " MyApp " এবং " MyAppUnitTests " লক্ষ্যগুলি অধীনে চেক করা উদ্দিষ্ট সদস্যপদ
  • তারপর আমি আমার ইউনিট পরীক্ষা ফাইল (গুলি) নির্বাচিত, 'ঘোষিত @testable আমদানি MyApp , শীর্ষে' তলদেশে ' আমদানি XCTest ', এবং শুধুমাত্র অধীনে "MyAppUnitTests" চেক উদ্দিষ্ট সদস্যপদ

এবং সবকিছু মোহন মত কাজ করে। আশাকরি এটা সাহায্য করবে.


8
পরীক্ষাযোগ্যতা সক্ষম করুন এবং মডিউলটিকে সংজ্ঞা দেয় যা কৌতুকটি করেছিল। নিয়মিত *। সুইফট ফাইলগুলির জন্য আমার লক্ষ্য সদস্যতার পরিবর্তন করার দরকার নেই।
জর্জি ইয়াকুব

আমি উপরের সমস্ত পদক্ষেপগুলি করেছি তবে আমার এখনও এমন কোনও মডিউল ত্রুটি নেই। আমার প্রকল্পটি তাত্পর্যপূর্ণ সি মিশ্রণ যদিও
মিকেল

@ মিকায়েল, আপনি কি নিজের ওবিজেসি / সুইফ্ট মিশ্রণ কোড বেসে কেবল সুইফট ফাইলের জন্য পরীক্ষা লিখছেন? (আমি জিজ্ঞাসা করেছি কারণ, আমি শেষবার যাচাই করেছিলাম, আমি মনে করি যে '@ টেস্টেবল আমদানি' কেবল ওবজ-সি / সুইফট কোডবেস মিশ্রণে কেবল সুইফট ফাইলগুলির জন্য পরীক্ষার কেসগুলি লেখার জন্য কাজ করেছিল probably সম্ভবত এটি এখনই পরিবর্তিত হতে পারে Some কেউ আমাকে সংশোধন করে যদি আমি এখানে ভুল)।
ভিক সুইফট

6
আমি আমার সমস্যা খুঁজে পেয়েছি। কারণ আমার পরীক্ষার টার্গেটের বৈধ আর্কিটেকচারটি আমার প্রধান টার্গেটের বৈধ আর্কিটেকচার কনফিগারেশনের মতো নয় not এখন এটা কাজ করছে. বিটিডব্লিউ, আমি আমার ক্ষেত্রে কেবল সুইফ্ট ক্লাসের পরীক্ষা দিচ্ছি, আমি ওবজ-সি-এর জন্য চেষ্টা করিনি
মিকেল

3
আপনার পরীক্ষার টার্গেটে অ্যাপ্লিকেশন সুইফ্ট ফাইলগুলি যুক্ত করা উচিত নয়, এটি পরীক্ষাগুলি চলাকালীন তাদের সামগ্রী নকল করে দেবে।
প্রেজেমিসাউ র্রাজেসিস্কি

18

দেখার জন্য একটি গ্যাচা হ'ল যদি আপনার মডিউলের -নামটিতে ড্যাশ অক্ষর থাকে তবে তার পরিবর্তে আপনাকে আন্ডারবার দিয়ে এটি উল্লেখ করতে হবে _। কোন কারণে আমি সন্দেহ করেছিলাম এটি একটি সমস্যা হতে পারে এবং এটি সত্যই আমার সমস্যা।

যেমন। @testable import Ocean-Swiftহয়ে@testable import Ocean_Swift

অন্য একটি জিনিস, যদি আপনি @testableসিনট্যাক্সটি ব্যবহার করেন তবে অবশ্যই আপনার পরীক্ষার লক্ষ্যে আপনার উত্পাদন কোডটি অন্তর্ভুক্ত না করার বিষয়ে নিশ্চিত হন। আমি খুঁজে পেয়েছি এটি অনর্থক অদ্ভুততার কারণ হবে।


1
সমস্ত অ-অক্ষরীয় অক্ষরগুলিকেও আন্ডারস্কোর দিয়ে প্রতিস্থাপনের প্রয়োজন হতে পারে। আমার টার্গেটটি এই ফর্ম্যাটে ছিল App (Dev), পরীক্ষারযোগ্য মডিউলটি হয়ে গেলApp__Dev_
মাশক্রফ্ট

11

এটি উভয় লক্ষ্যমাত্রার বিল্ডিং সেটিংসের সাথে একটি ত্রুটি বলে মনে হচ্ছে। আপনার এটি নিশ্চিত করা দরকার:

  • ENABLE_TESTABILITY উভয় টার্গেটের জন্য হ্যাঁ সমান।
  • PRODUCT_MODULE_NAMEপরীক্ষা লক্ষ্য মান আবেদন এক থেকে পৃথক করা উচিত নয়।

2
এটি আমার পক্ষে কাজ করেছে। আমি ভুল মডিউল নাম ব্যবহার করছিলাম। আমি একটি _ যুক্ত করার পরিবর্তে স্থানটি সরিয়ে ফেলছিলাম। ডাবল আপনার
পণ্যের মডেল নামগুলি

9

অন্য একটি জিনিস যাচাই করে দেখুন: আপনার যদি একটি উদ্দেশ্য-সি প্রকল্প রয়েছে তবে আপনি সুইফটে ইউনিট পরীক্ষা লিখছেন, নিশ্চিত করুন যে লক্ষ্যটি লক্ষ্যমাত্রায় কমপক্ষে একটি সুইফট ফাইল ব্যবহার করে!


অধিক তথ্য:

আমি একটি উদ্দেশ্য-সি প্রকল্পে কাজ করছিলাম, তবে সুইফটে ইউনিট পরীক্ষা লিখতে চেয়েছিলাম।

প্রয়োজনীয় প্রজেক্টনাম-ব্রিজিং-হেডার এইচ। ফাইল তৈরি করতে আমি মূল টার্গেটে একটি সুইফট ফাইল যুক্ত করেছি, আমার পরীক্ষা লিখেছি এবং সবকিছু সঠিকভাবে কাজ করছে।

পরে আমি সুইফ্ট ফাইলটি মুছলাম কারণ আমি ভেবেছিলাম আমার এটির দরকার নেই (মূল টার্গেটের সমস্ত কোডই উদ্দেশ্য-সিতে রয়েছে ... আমি কেবল সুইফটে পরীক্ষা লিখছিলাম)।

আমি "ক্লিন / ক্লিন বিল্ড ফোল্ডার" করার পরে এবং "এ জাতীয় কোনও মডিউল" সমস্যাটি দেখানোর পরে আমি কোনও সমস্যা লক্ষ্য করি না। কিছু মাথা চুলকানোর পরে আমি একটি নতুন ফাঁকা সুইফ্ট ফাইল যুক্ত করলাম এবং সমস্যাটি চলে গেল।

আমি এটি সুইফট ফাইলটির সাথে / ছাড়াই একাধিকবার পরীক্ষা করেছি এবং এটি কেবল এটির সাথেই কাজ করে ... সুতরাং, আমাকে হয় ফাঁকা ফাইলটি প্রজেক্টে রেখে, কিছু উদ্দেশ্য-সিটিকে সুইফটে রূপান্তর করতে হবে, বা কিছু যুক্ত করতে হবে প্রকল্পে নতুন কোড সুইফটে লেখা।


1
!! 3 ঘন্টা পরিষ্কার করার পরে 3 বার স্ক্র্যাচ থেকে শুরু করে, মুছে ফেলা তথ্য মুছে ফেলা, আমি আপনার মন্তব্যটি পেয়েছি যা আমার সমস্যার সমাধান করেছে !!! ধন্যবাদ !!!!
মেরিয়াম ফেকরি

আপনি কী জানেন কীভাবে সুইফট পরীক্ষার ক্লাসগুলিতে অবজেক্টিভ-সি ক্লাসগুলি অ্যাক্সেস করতে হবে, কারণ আমি প্রকল্পের মডিউলটি আমদানি করি এবং এতে কোনও ত্রুটি নেই, তবে এটি এখনও আমার উদ্দেশ্য-সি শ্রেণিগুলিকে স্বীকৃতি দেয় না। আমার অন্য কিছু করা উচিত?
মেরিমে ফেকরি

আমি একটি অতিরিক্ত পয়েন্ট যোগ করতে চাই, যদিও আমার বেশিরভাগ ওজেসি প্রকল্পে কমপক্ষে একটি সুইফট ফাইল থাকে তবে আমার লক্ষ্যটির জন্য কোনও ব্রিজিং শিরোনাম ছিল না। "অ্যাপ্লিকেশন টার্গেটের মধ্যে কোড আমদানি করুন" শিরোনামে নীচের লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করে সুইফট পরীক্ষাগুলি থেকে ওবিজেসি ক্লাস অ্যাক্সেস করতে সক্ষম হ'ল। বিকাশকারী.অ্যাপল.
com

আমি এই ইস্যু মধ্যে দৌড়ে। : যাইহোক, আমি, একটি উপায় সুইফট ফাইল সম্ভব হলে সহ এড়াতে পেতে আগ্রহী করছি তাই আমি প্রশ্ন এখানে জিজ্ঞাসা stackoverflow.com/q/62965954/211292
ThomasW

আসলে, মনে হচ্ছে আপনি যদি @testable import Fooলাইনটি অন্তর্ভুক্ত না করেন তবে আপনার ইউনিট পরীক্ষাগুলি সঠিকভাবে চালানো উচিত।
টমাসডাব্লু

9

যারা শেষ উত্তর পর্যন্ত স্ক্রোল করেছেন এবং এখনও কিছুই কাজ করেন নি, অন্য সমস্ত উত্তরগুলির পরামর্শ অনুসরণ করার পরে আমার পক্ষে এটি কী হয়েছিল। আমি এক্সকোড 11 ব্যবহার করছি:

আমার ক্ষেত্রে সমস্যার কারণ কী তা হ'ল আমি আমার পণ্যের নাম পরিবর্তন করেছি

  1. আমি আমার প্রধান টার্গেটের বিল্ড সেটিংসে আমার পণ্যের নাম পরিবর্তন করে "নতুন নাম" করেছি
  2. আমাকে আমার পরীক্ষার টার্গেটের জন্য হোস্ট অ্যাপ্লিকেশনটি পুনরায় নির্বাচন করতে হয়েছিল
  3. আমি জানতাম না যে পণ্যের নাম পরিবর্তন করাও পণ্যের মডিউল নাম পরিবর্তন করতে পারে , এটিই আমার পরীক্ষার ফাইলগুলিতে মডিউল আমদানির জন্য ব্যবহৃত হয়। আমি আমার আমদানি নীচে পরিবর্তন করেছি:

    @ টেস্টেবল আমদানি নতুন_নাম

  4. এটা কাজ করেছে

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


7

এই সমস্যাগুলিতে কয়েক দিন ব্যয় করার পরে অবশেষে আমি এটি আমার প্রকল্পের সাথে কাজ করতে চাই। ব্রিজিং শিরোনামে সমস্যা ছিল - আপনি যদি আপনার প্রধান লক্ষ্যবস্তুতে ব্রিজিং শিরোলেখ ব্যবহার করেন তবে পরীক্ষার লক্ষ্যমাত্রার পথটি ফাঁকা হতে পারে না ifব্রিজিং শিরোনাম খালি থাকতে পারে না !!!

আশা করি এটি কারও জন্য কিছুটা সময় সাশ্রয় করবে।


5

পরীক্ষা প্রকল্পের বিল্ড সেটিংসের অধীনে নিশ্চিত হয়ে নিন, পরীক্ষার লক্ষ্য তালিকায় রয়েছে।

প্লে বোতামের পাশে, পরীক্ষা প্রকল্পটি নির্বাচন করুন, তারপরে স্কিম সম্পাদনা করুন ..., বিল্ড বিভাগে যান, আরও + ক্লিক করুন এবং আপনি যে লক্ষ্যটির বিরুদ্ধে পরীক্ষা করতে চান তা নির্বাচন করুন।

আমার ক্ষেত্রে, আমাদের একটি অভ্যন্তরীণ লক্ষ্য রয়েছে যা আমরা বিকাশ করি (কয়েকটি ছোটখাটো পার্থক্য) এবং একত্রিত হওয়ার পরে, এটি পরীক্ষার কনফিগারেশন থেকে সরানো হয়েছিল।

পরীক্ষা স্কিম সম্পাদনা করুন


5

এখানে আরও একটি বিষয় যাচাই করা আছে তা তালিকাভুক্ত নয়। আমার জন্য, এটি আমার দলের সাথে কিছু করার ছিল, সম্ভবত আমাদের দলের এজেন্ট এখনও সর্বশেষ লাইসেন্স চুক্তিতে সম্মত হয়নি! একবার আমি আমার টার্গেটের জেনারেল সেটিংসে একটি আলাদা দল নির্বাচন করেছি এবং তারপরে আমি 12.1 বা 11.0 এর মতো একটি নির্দিষ্ট ডিপ্লোয়মেন্ট টার্গেট নির্দিষ্ট করে দিচ্ছি, হঠাৎ "এ জাতীয় কোনও মডিউল" সতর্কতা চলে গেল না।

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

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


4

আমার ক্ষেত্রে আমার 3 টি সমস্যা ছিল। প্রথমটি ছিল আমাকে আমদানির পথটি নির্দিষ্ট করতে হয়েছিল:

Target -> Build Settings -> Swift Compiler - Search Paths -> Import Paths

দ্বিতীয়টি হ'ল আমি পড ব্যবহার করছিলাম এবং আমাকে এই পরীক্ষাগুলি আমার পরীক্ষাগুলিতেও আমদানি করতে হয়েছিল:

target 'MyAppTests' do
    inherit! :complete
end

তৃতীয়টি যেহেতু আমি আমার টার্গেটে একটি ব্রিজিং শিরোনাম ব্যবহার করছিলাম, সুতরাং আমাকে পরীক্ষার জন্য ব্রিজিং শিরোনামটি একই হতে হবে।


2

আমার সমস্যাটি ছিল যে আমি যে ক্লাসটি পরীক্ষা করতে চেয়েছিলাম সেটি আলাদা মডিউলে (এপিআই ক্লায়েন্ট) থাকার কথা ছিল, তবে ক্লাসটি আসলে অ্যাপ্লিকেশন টার্গেটের সদস্য ছিল এবং ফ্রেমওয়ার্ক টার্গেট নয়। ক্লাসের টার্গেট সদস্যপদ পরিবর্তন করে আমদানি ত্রুটি চলে গেল!


2

পরিবেশ: এক্সকোড সংস্করণ 9.0 (9A235)
পরিস্থিতি: একটি মুক্ত-উত্স কাঠামো পরীক্ষা করা।

আমার একই সমস্যা ছিল: 'এরকম কোনও মডিউল নেই'।

সমাধান:

  1. পরীক্ষার লক্ষ্য নির্বাচন করুন।
  2. বিল্ড পর্যায়গুলি নির্বাচন করুন
  3. লিঙ্ক বাইনারি মাধ্যমে পরীক্ষা করার জন্য কাঠামো যুক্ত করুন ...

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

পরীক্ষার ফাইলটি এখানে: এখানে চিত্র বর্ণনা লিখুন


2

আমার এই একই সমস্যা ছিল। বিল্ড ফোল্ডারটি সাফ করা এবং এক্সকোড পুনরায় চালু করা কার্যকর হয়নি।

আমার জন্য কী কাজ করেছে তা নিশ্চিত করা হয়েছিল যে আপনার পরীক্ষার লক্ষ্য এবং স্কিমের "বিল্ড অ্যাক্টিভ আর্কিটেকচার কেবল" আপনার সেটিংস আপনার অ্যাপের লক্ষ্য এবং স্কিমের সেটিংয়ের সাথে মেলে।


2

আমি উপরের পদক্ষেপগুলি অনুসরণ করেছি, যা কাজ করেছিল। তবে আমার প্রকল্পে আরও কিছু সমস্যা ছিল। আমি এই সতর্কতা পেয়েছি এবং আমি আমার পরীক্ষার লক্ষ্য পরীক্ষার জন্য আমার প্রধান প্রকল্প থেকে ক্লাস অ্যাক্সেস করতে পারিনি।

মডিউলের অংশ পরীক্ষা করে - আমদানি উপেক্ষা করে

আমি দেখতে পেয়েছি যে আপনার পরীক্ষার টার্গেটের পণ্য মডিউলটির নাম (আপনার টেস্টট্যাজেট -> বিল্ড সেটিংস -> অনুসন্ধান product module) আপনার প্রকল্পের নামের মতো হতে পারে।

পরীক্ষার টার্গেটের জন্য পণ্য মডিউলটির নামটি আপনার প্রকল্পের নামের মতো হতে পারে না

একবার আমি আমার পরীক্ষার টার্গেটের জন্য পণ্যের মডিউলটির নাম পরিবর্তন করেছিলাম everything

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


1

আমার সমাধান এখানে।

প্রথমে OdeAlSwiftUITest.swift ক্লিক করুন, তারপরে টার্গেটের সদস্যপদে প্রকল্প টার্গেটনামটি পরীক্ষা করুন।

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


7
এটা ভুল. আপনার পরীক্ষার ফাইলগুলি কখনই আপনার টার্গেটে যুক্ত করবেন না।
হাসিবোট

1

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

প্রকল্প নেভিগেটরে মাইএপটিস্টেস.সুইফ্টটি ক্লিক করুন এবং ডান প্যানেলটি ক্লিক করুন, লক্ষ্য সদস্যতার ক্ষেত্রে আপনার মডিউলটি পরীক্ষা করুন। এটা আমার কাজ করে।


1

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

আমি নিশ্চিত করতে চাই যে জিনিসগুলি সম্পন্ন হয়েছে:

  • হোস্ট অ্যাপ্লিকেশন
  • @ টেস্টেবল আমদানি "মডিউল_নাম" (মডিউলটির নামটি সঠিক কিনা তা নিশ্চিত করুন)
  • নিশ্চিত করুন যে পরীক্ষার জন্য আপনার স্থাপনার লক্ষ্য প্রকল্পের মতো
  • এক্সসিটিস্টের টার্গেট সদস্যপদ থাকার দরকার নেই

0

আমার জন্য সমাধানটি হ'ল @ টেস্টেবল আমদানি মাইপ্রজেক্ট_ওসকে @ টেস্টেবল আমদানি মাইপ্রজেক্টের নামকরণ করার পরে আমি বিল্ড সেটিংস / প্যাকেজিং / পণ্যের নাম / {AR টারজিইআইএআইএল / থেকে মাইপ্রজেক্টে টার্গেট মাইপ্রজেক্ট-আইওসের পণ্যের নাম আপডেট করেছি।


0

এটি আমার জন্য স্থির হয়েছিল যখন আমি 9.3 থেকে 11.0 তে ডিপ্লোয়মেন্ট টার্গেট পরিবর্তন করেছি ।

সাধারণ> স্থাপনার লক্ষ্য> "১১.০"


সিমুলেটর পরিবর্তনের ক্ষেত্রে এটি আরও বেশি হতে পারে তবে এটি আমার জন্যও কাজ করা হয়েছিল
RolandasR

0

আপনি যদি এক্সকোডবিল্ড ব্যবহার করে থাকেন এবং এই সমস্যাটি খুঁজে পান তবে বিল্ড কমান্ডটিতে একটি ওয়ার্কস্পেস পতাকা যুক্ত করার বিষয়টি বিবেচনা করুন।

এটি পরিবর্তন করা হয়েছে

$ xcodebuild -scheme PowToonsTests -destination 'name=iPhone X' test

এই

$ xcodebuild -workspace PowToons.xcworkspace -scheme PowToonsTests -destination 'name=iPhone X' test

0

বিল্ড সেটিংস পরীক্ষার টার্গেটে, হোস্ট টেস্টিং পরীক্ষা করে দেখুন, এটি PRODUCT_NAME এ নাম সেট করে takes এটি সেই নাম যা আপনার পরীক্ষার ক্লাসে ব্যবহার করা উচিত।

আমি PRODUCT_NAME (মূল টার্গেটের নামের সাথে মিল নেই) পরিবর্তন না করার জন্য পুনরায় সুপারিশ করছি



-1

এই উত্তরে বর্ণিত হিসাবে আমি কেবল ওবজ-সি প্রকল্পে সুইফট পরীক্ষা যুক্ত করছি। সমাধানটি ছিল একটি ডামি সুইফ্ট ক্লাস যুক্ত করা, যার পরে এক্সকোড একটি ব্রিজিং শিরোনাম যুক্ত করার অনুরোধ জানাবে, তারপরে সুইফ্ট শ্রেণিটি সরিয়ে ফেলবে। তারপরে সব ঠিকঠাক ছিল।


-1

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


-1

আমি মনে করি এটি উদাহরণস্বরূপ পরীক্ষাগুলি মুছে ফেলার কারণে ঘটেছে।

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

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

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

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