কৌনিক সিএলআই দ্বারা উত্পাদিত "স্পট.এস.টি" ফাইলগুলি কী কী?


210

আমি কৌনিক 2 এ নতুন (এবং সাধারণভাবে কৌণিক ...) এ আমি খুব আকর্ষক মনে করছি। আমি প্রকল্পগুলি উত্পাদন এবং পরিবেশন করতে কৌণিক সিএলই ব্যবহার করছি । এটি ভালভাবে কাজ করছে বলে মনে হচ্ছে - যদিও আমার সামান্য শিখন প্রকল্পগুলির জন্য এটি আমার প্রয়োজনের চেয়ে বেশি উত্পাদন করে - তবে এটি প্রত্যাশিত।

আমি লক্ষ্য করেছি যে এটি spec.tsএকটি প্রকল্পে প্রতিটি কৌণিক উপাদানটির জন্য উত্পাদিত হয়েছে (উপাদান, পরিষেবা, পাইপ, ইত্যাদি)। আমি চারপাশে অনুসন্ধান করেছি কিন্তু এই ফাইলগুলি কীসের জন্য তার ব্যাখ্যা খুঁজে পাইনি।

এই বিল্ড ফাইলগুলি যা ব্যবহার করার সময় সাধারণত লুকানো থাকে tsc? আমি অবাক হয়েছি কারণ আমি Componentতৈরি করেছিলাম এবং সনাক্ত করেছি যে এই spec.tsফাইলগুলিতে নামটিও রেফারেন্স করা হয়েছে এবং আমি খুঁজে পেয়েছি যে একটি খারাপ নাম তৈরি করেছি ।


import {
  beforeEach,
  beforeEachProviders,
  describe,
  expect,
  it,
  inject,
} from '@angular/core/testing';
import { ComponentFixture, TestComponentBuilder } from '@angular/compiler/testing';
import { Component } from '@angular/core';
import { By } from '@angular/platform-browser';
import { PovLevelComponent } from './pov-level.component';

describe('Component: PovLevel', () => {
  let builder: TestComponentBuilder;

  beforeEachProviders(() => [PovLevelComponent]);
  beforeEach(inject([TestComponentBuilder], function (tcb: TestComponentBuilder) {
    builder = tcb;
  }));

  it('should inject the component', inject([PovLevelComponent],
      (component: PovLevelComponent) => {
    expect(component).toBeTruthy();
  }));

  it('should create the component', inject([], () => {
    return builder.createAsync(PovLevelComponentTestController)
      .then((fixture: ComponentFixture<any>) => {
        let query = fixture.debugElement.query(By.directive(PovLevelComponent));
        expect(query).toBeTruthy();
        expect(query.componentInstance).toBeTruthy();
      });
  }));
});

@Component({
  selector: 'test',
  template: `
    <app-pov-level></app-pov-level>
  `,
  directives: [PovLevelComponent]
})
class PovLevelComponentTestController {
}

উত্তর:


265

স্পেক ফাইলগুলি আপনার উত্স ফাইলগুলির একক পরীক্ষা। কৌণিক অ্যাপ্লিকেশনগুলির কনভেনশনটিতে প্রতিটি .ts ফাইলের জন্য একটি .spec.ts ফাইল থাকা উচিত। আপনি যখন জাস্টমিন জাভাস্ক্রিপ্ট পরীক্ষার কাঠামোটি ব্যবহার করে চালাচ্ছেন তবে এটি আপনি যখন ব্যবহার করেন কর্মফল পরীক্ষা রানার ( https://karma-runner.github.io/ )ng test কমান্ডটি ।

আপনি আরও কিছু পড়ার জন্য এটি ব্যবহার করতে পারেন:

https://angular.io/guide/testing


17
ধন্যবাদ, আমি নিজেই এটি ভাবছিলাম। ধরুন আমি কোনও পরীক্ষা চালাতে চাই না, আমি কি নিরাপদে .spec ফাইলগুলি মুছতে পারি? (এবং e2e ফোল্ডারের মতো পরীক্ষার ফোল্ডার এবং ফাইলগুলিও?)
কোকোডোকো

7
আমিও মনে করি এই প্রশ্নের উত্তরটির জন্য আরও কিছুটা উত্তর দরকার। আমরা কি কেবল এই ফাইলগুলিকে পুরোপুরি উপেক্ষা করতে পারি এবং কেবল আমাদের কাজটি চালিয়ে যেতে পারি?
ম্যাটিউজ মিগিয়া

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

33
আপনি যখন সি এল এলির সাথে একটি নতুন উপাদান তৈরি করেন আপনি কোনও নির্দিষ্ট --spec=falseফাইলের উত্পাদন বাদ দিতে যোগ করতে পারেন । একটি নতুন উপাদান জেনারেট করার জন্য পূর্ণ কমান্ড হবে: ng g component comp-name --spec=false। এখানে আরও তথ্য: github.com/angular/angular-cli/wiki/generate-comp घटक
ডিন

11
এটি এই জাতীয় সংশোধন করে অক্ষম করা যেতে পারে angular-cli.json:{ "defaults": { "component": { "spec": false } } }
আলী শেরাফাত

20

আপনি যদি "এনজি নিউ" ব্যবহার করে নতুন কৌণিক প্রকল্প তৈরি করেন তবে আপনি স্পট.এসটি ফাইলগুলি তৈরি করতে পারেন। এর জন্য আপনার --স্কিপ-টেস্ট বিকল্প প্রয়োগ করা উচিত।

এনজি নতুন এনজি-অ্যাপ-নাম --স্কিপ-পরীক্ষা


1
প্রকল্পটি তৈরি হওয়ার পরে আপনি এই বিকল্পটি সেট করতে পারেন?
হিউঘুঘটওটল

2

.Spec.ts ফাইলগুলি পৃথক উপাদানগুলির জন্য ইউনিট পরীক্ষার জন্য। আপনি কর্ম কর্ম রানার মাধ্যমে চালাতে পারেন ng test। নির্দিষ্ট উপাদানগুলির জন্য ইউনিট পরীক্ষার মামলার কোড কভারেজ দেখতে seeng test --code-coverage


0

.spec.ts ফাইল জন্য ব্যবহৃত হয় unit testingআপনার অ্যাপ্লিকেশনটির ।

আপনি এটি তৈরি করতে না পারলে --spec=falseনতুন তৈরি করার সময় ব্যবহার করুন Component। এটার মত

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