Angular CLI - คำสั่งทดสอบ ng

ไวยากรณ์

ng test <project> [options]
ng t <project> [options]

การทดสอบ ng เรียกใช้กรณีทดสอบหน่วยในโค้ดแอปเชิงมุม ตัวเลือกคือพารามิเตอร์ที่เป็นทางเลือก

อาร์กิวเมนต์

ซีเนียร์ อาร์กิวเมนต์และไวยากรณ์ คำอธิบาย
1 <โครงการ> ชื่อของโครงการที่จะทดสอบ

ตัวเลือก

ซีเนียร์ ตัวเลือกและไวยากรณ์ คำอธิบาย
1 --browsers = เบราว์เซอร์ แทนที่การทดสอบเบราว์เซอร์ที่รัน
2 --codeCoverage = จริง | เท็จ

ส่งออกรายงานการครอบคลุมรหัส

ค่าเริ่มต้น: เท็จ

3 --codeCoverageExclude Globs ที่จะแยกออกจากความครอบคลุมของรหัส
4 --configuration = การกำหนดค่า

เป้าหมายการสร้างที่มีชื่อตามที่ระบุในส่วน "การกำหนดค่า" ของ angular.json แต่ละเป้าหมายที่ตั้งชื่อมาพร้อมกับการกำหนดค่าตัวเลือกเริ่มต้นสำหรับเป้าหมายนั้น การตั้งค่านี้จะลบล้างแฟล็ก "--prod" อย่างชัดเจน

นามแฝง: -c

5 --help = true | false | json | JSON

แสดงข้อความวิธีใช้สำหรับคำสั่งนี้ในคอนโซล

ค่าเริ่มต้น: เท็จ

6 - รวม

กลุ่มของไฟล์ที่จะรวมสัมพันธ์กับเวิร์กสเปซหรือรูทโปรเจ็กต์ มี 2 ​​กรณีพิเศษ -

  • เมื่อมีการระบุพา ธ ไปยังไดเร็กทอรีไฟล์ข้อมูลจำเพาะทั้งหมดที่ลงท้ายด้วย ".spec. @ (ts | tsx)" จะรวมอยู่ด้วย

  • เมื่อมีการระบุพา ธ ไปยังไฟล์และมีไฟล์ข้อมูลจำเพาะที่ตรงกันจะถูกรวมไว้แทน

7 --karmaConfig = กรรมConfig ชื่อของไฟล์คอนฟิกูเรชัน Karma
8 --main = หลัก ชื่อของไฟล์จุดเริ่มต้นหลัก
9 - เสา เปิดใช้งานและกำหนดไฟล์การดูช่วงเวลาการสำรวจความคิดเห็นเป็นมิลลิวินาที
10 --polyfills = polyfills ชื่อของไฟล์ polyfills
11 --preserveSymlinks = จริง | เท็จ

อย่าใช้เส้นทางจริงเมื่อแก้ไขโมดูล

ค่าเริ่มต้น: เท็จ

12 --prod = จริง | เท็จ ชวเลขสำหรับ "--configuration = production" เมื่อเป็นจริงให้ตั้งค่าคอนฟิกบิลด์เป็นเป้าหมายการผลิต โดยค่าเริ่มต้นเป้าหมายการผลิตจะถูกตั้งค่าในคอนฟิกูเรชันพื้นที่ทำงานเพื่อให้บิลด์ทั้งหมดใช้การรวมกลุ่มการเขย่าต้นไม้แบบ จำกัด และการกำจัดโค้ดที่ตายแล้วอย่าง จำกัด
13 --progress = จริง | เท็จ บันทึกความคืบหน้าไปยังคอนโซลขณะสร้าง
13 --progress = จริง | เท็จ บันทึกความคืบหน้าไปยังคอนโซลขณะสร้าง
14 - ผู้รายงาน กรรมผู้สื่อข่าวที่จะใช้. ส่งตรงถึงนักวิ่งแห่งกรรม.
15 --sourceMap = จริง | เท็จ

แผนผังแหล่งที่มาของเอาต์พุต

ค่าเริ่มต้น: จริง

16 --tsConfig = tsConfig ชื่อของไฟล์คอนฟิกูเรชัน TypeScript
17 --watch = จริง | เท็จ เรียกใช้บิลด์เมื่อไฟล์เปลี่ยนแปลง
18 --webWorkerTsConfig = webWorkerTsConfig คอนฟิกูเรชัน TypeScript สำหรับโมดูล Web Worker

ขั้นแรกให้ย้ายไปยังโครงการเชิงมุมที่อัปเดตโดยใช้คำสั่งng build

ตอนนี้รันคำสั่งทดสอบ

ตัวอย่าง

\>Node\>TutorialsPoint> ng test
...
WARN: ''app-goals' is not a known element:
1. If 'app-goals' is an Angular component, then verify that it is part of this module.
2. If 'app-goals' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.'
Chrome 83.0.4103 (Windows 7.0.0): Executed 0 of 4 SUCCESS (0 secs / 0 secs)
...
AppComponent should render title FAILED
   TypeError: Cannot read property 'textContent' of null
      at <Jasmine>
      at UserContext.<anonymous> (http://localhost:9876/_karma_webpack_/src/app/app.component.spec.ts:33:51)
            ...
Chrome 83.0.4103 (Windows 7.0.0): Executed 1 of 4 (1 FAILED) (0 secs / 0.203 secs)
...
Chrome 83.0.4103 (Windows 7.0.0): Executed 2 of 4 (1 FAILED) (0 secs / 0.221 secs)
...
Chrome 83.0.4103 (Windows 7.0.0): Executed 4 of 4 (1 FAILED) (0 secs / 0.244 sec
Chrome 83.0.4103 (Windows 7.0.0): Executed 4 of 4 (1 FAILED) (0.282 secs / 0.244
 secs)
TOTAL: 1 FAILED, 3 SUCCESS

ตอนนี้เพื่อแก้ไขความล้มเหลวให้อัปเดต app.component.spec.ts

app.component.spec.ts

import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';

describe('AppComponent', () => {
   beforeEach(async(() => {
      TestBed.configureTestingModule({
         imports: [
            RouterTestingModule
         ],
         declarations: [
            AppComponent
         ],
      }).compileComponents();
   }));

   it('should create the app', () => {
      const fixture = TestBed.createComponent(AppComponent);
      const app = fixture.componentInstance;
      expect(app).toBeTruthy();
   });
});

ตอนนี้รันคำสั่งทดสอบ

ตัวอย่าง

\>Node\>TutorialsPoint> ng test
...
WARN: ''app-goals' is not a known element:
1. If 'app-goals' is an Angular component, then verify that it is part of this m
odule.
2. If 'app-goals' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@
NgModule.schemas' of this component to suppress this message.'
Chrome 83.0.4103 (Windows 7.0.0): Executed 1 of 2 SUCCESS (0 secs / 0.053 secs)
...
Chrome 83.0.4103 (Windows 7.0.0): Executed 2 of 2 SUCCESS (0.097 secs / 0.073 se
cs)
TOTAL: 2 SUCCESS

การทดสอบ ng ยังเปิดเบราว์เซอร์และแสดงสถานะการทดสอบ