একটি একক পরীক্ষার ফাইল চালানো


138

ng testপুরো টেস্ট স্যুটের পরিবর্তে কোনও একক ফাইলের জন্য চালানোর কোনও উপায় আছে কি ? আদর্শভাবে, আমি কোনও ফাইল সম্পাদনা করার সময় দ্রুততম সম্ভাব্য প্রতিক্রিয়ার লুপ পেতে চাই, তবে karmaপ্রতিটি সংরক্ষণের উপর পুরো স্যুটটি কার্যকর করি, আপনি যখন যথেষ্ট পরিমাণে টেস্ট স্যুট তৈরি করেন তখন কিছুটা ধীর হয়।


এটি পৃথক স্পেস চালানোর বিষয়ে যে প্রশ্নটিতে কৌণিক-ক্লাইমের সাথে কেবল একটি পরীক্ষার বৈশিষ্ট্য কার্যকর করতে হয় তার থেকে এটি আলাদা । এটি একটি পৃথক ফাইল চালানো সম্পর্কে। সমাধান একই জেসমিন বিশেষ বৈশিষ্ট্য জড়িত, কিন্তু প্রশ্নের প্রকৃতি কিছুটা পৃথক।



: আপনি এখানে একটি উত্তর খুঁজে পেতে পারেন stackoverflow.com/questions/40683673/...
সাহিল Shikalgar

: আপনি এখানে একটি উত্তর খুঁজে পেতে পারেন stackoverflow.com/questions/40683673/...
সাহিল Shikalgar

উত্তর:


261

আমি আবিষ্কার করেছি যে জুঁই আপনাকে একটি (ফোকাসের জন্য?) দিয়ে উপসর্গ describeএবং itপদ্ধতিগুলির অনুমতি দেয় f। সুতরাং, fdescribeএবং fit। আপনি যদি এগুলির দুটি ব্যবহার করেন তবে কর্মফল কেবলমাত্র প্রাসঙ্গিক পরীক্ষা চালাবে। সুতরাং, বর্তমান ফাইলটি ফোকাস করতে, আপনি কেবলমাত্র শীর্ষ স্তরটি describeনিয়ে এটিতে পরিবর্তন করতে পারেন fdescribe। আমার উদ্দেশ্যে কাজ করে।


9
কিংবদন্তি উত্তর
danday74

2
বিশ্বাস করা যায় না যে এই জাতীয় গুরুত্বপূর্ণ কার্যকারিতা আরও সুস্পষ্ট এবং সোজা নয়।
অ্যাশ

10
এটি কাজ করে তবে এটি আদর্শ নয় কারণ আপনার উত্স কোডটি পরিবর্তন করা দরকার এবং আপনি উত্স নিয়ন্ত্রণে পরিবর্তিত কোডটি পরীক্ষা করতে পারেন।
মার্কো আলটিয়েরি

4
সম্ভব হলে অফিসিয়াল ডকুমেন্টেশনের লিঙ্কগুলি যুক্ত করুন
jgpATs2w

আমি এটি সন্ধান করছি, দুর্দান্ত
কার্লোস ই

26

এটা যে আপনি মন্তব্য ছাড়া বিশেষ পরীক্ষা নিষ্ক্রিয় করতে পারেন মূল্য উল্লেখ করার নেই xdescribeএবংxit

xdescribe('Hello world', () => { 
  xit('says hello', () => { 
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});

এবং কেউ ইতিমধ্যে বলেছে যে আপনি যদি কিছু পরীক্ষায় মনোনিবেশ করতে চান তবে fdescribeএবংfit

fdescribe('Hello world', () => { 
  fit('says hello', () => { 
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});

25

এই দিনটি includeবিকল্পের মাধ্যমে এটি অর্জন করা যেতে পারে । https://angular.io/cli/test#options

এটি একটি গ্লোব ম্যাচ, উদাহরণস্বরূপ:

ng test --include='**/someFolder/*.spec.ts'

আমি এটি 8.1.0 রিলিজ নোটগুলিতে খুঁজে পাচ্ছি না , তবে @ সুইস এর নীচে উল্লেখ করেছে ক্লাইব সংস্করণের পরে একটি বৈশিষ্ট্য 8.1.0। এটি বের করার জন্য ধন্যবাদ


1
এটি সাম্প্রতিক আপডেটের মতো মনে হচ্ছে। কোন সংস্করণ প্রয়োজন তা অন্তর্ভুক্ত করতে পারে। CLI 8.1 দরকার
শুক্রবার

দেখে মনে হচ্ছে v9.1 :(
rmcsharry

2
আমি কেবল এটি সিএলআই v9.1.0 এ পরীক্ষা করেছি এবং এটি পুরোপুরি কাজ করে।
সজন সিং

9

আমি দেখতে পেলাম যে ng testএকটি অতিরিক্ত বিকল্প রয়েছে --includeযা আপনি কোনও একক ফাইলের জন্য পরীক্ষা চালাতে সক্ষম হতে বা কোনও বিশেষ ডিরেক্টরিতে বা একগুচ্ছ ফাইলগুলির জন্য ব্যবহার করতে পারেন:

// one file
npm run test -- --include src/app/components/component/component-name.component.spec.ts

// directory or bunch of files
npm run test -- --include src/app/components

ক্লায়েন্ট ডক্স


কৌণিক 9 - এটি মুছে ফেলা হয়েছে বলে মনে হচ্ছে
rmcsharry

না, এটি এখনও এনজি 9
তে

6

আপনি src/test.tsনিম্নলিখিত লাইনে যেতে পারেন এবং পরিবর্তন করতে পারেন:

const context = require.context('./', true, /\.spec\.ts$/);

প্রতি

const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);

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


1
কড়া কথায় বলতে গেলে এটি সবচেয়ে সঠিক উত্তর বলে মনে হচ্ছে যদিও এটি কীভাবে করা যায় সে সম্পর্কে বেশিরভাগ প্রশ্নের ফিট এবং এফডিএসক্রাইব ব্যবহার করে সমস্যার সমাধান করা যায়। এটি আরও সহজে কার্মে সম্পাদন করার জন্য গিট ইস্যু রয়েছে: github.com/karma-runner/karma/issues/1507 । আদর্শভাবে, যদিও সহজ নয়, আমরা কর্মকে কনফিগার করতে পারি যাতে আমরা একটি পরীক্ষায় পরিবর্তন করতে পারি, এবং তারপরে আপডেটটি দিয়ে পুনরায় চালিত করার জন্য ব্রাউজারে এটিতে ক্লিক করুন।
কুমড়োহেহেড

3

ভিজ্যুয়াল স্টুডিও কোড এক্সটেনশন

সবচেয়ে সহজ উপায় হল vscode- পরীক্ষা-এক্সপ্লোরার এক্সটেনশনটি তার শিশু কৌণিক-কর্ম-পরীক্ষা-এক্সপ্লোরার এবং জুঁই-পরীক্ষা-অ্যাডাপ্টারের সাথে ব্যবহার করা , আপনি যদি চান তবে একের পর এক চালানোর জন্য বর্তমান পরীক্ষার একটি তালিকা পাবেন: এখানে চিত্র বর্ণনা লিখুন

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



0

আপনাকে অবশ্যই যেতে হবে src/test.tsএবং নিম্নলিখিত লাইন নম্বর কোড 18 টি পরিবর্তন করতে পারেন:

//Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);

প্রতি

//Then we find all the tests.
const context = require.context('./', true, /testing.component\.spec\.ts$/);

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


-3

যদি আপনি আপনার নির্দিষ্ট ফাইলটিকে প্যারামিটার হিসাবে নির্দিষ্ট করেন তবে কাজ করে।

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

এনজি টেস্ট foo.spec.ts

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


4
আপনি কোন সংস্করণটি ব্যবহার করছেন তা নির্দিষ্ট করতে পারেন?
1.7.x এর

4
এটি আমার পক্ষে যেমন হয় তেমন কার্যকর হয়নি। তবে আমি অনুমিত ফাইলের পাথের আগে --main বিকল্পের সাথে কাজ করতে এটি পরিবর্তন করেছি। আমি ফরোয়ার্ড স্ল্যাশ সহ একটি নিখুঁত পথ ব্যবহার করেছি। আপেক্ষিক পথ চেষ্টা করেন নি। কৌণিক ব্যবহার 6 sure এটি সর্বোত্তম সমাধান কিনা তা নিশ্চিত নন তবে এটি আমার পক্ষে কাজ করে বলে মনে হচ্ছে।
ব্যবহারকারী 2367418
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.