खोज…


Alsatian

Alsatian टाइपस्क्रिप्ट में लिखी एक इकाई परीक्षण रूपरेखा है। यह टेस्ट मामलों के उपयोग की अनुमति देता है, और टीएपी-अनुपालन मार्कअप को आउटपुट करता है।

इसका उपयोग करने के लिए, इसे npm से स्थापित करें:

npm install alsatian --save-dev

फिर एक परीक्षण फ़ाइल सेट करें:

import { Expect, Test, TestCase } from "alsatian";
import { SomeModule } from "../src/some-module";    

export SomeModuleTests {

    @Test()
    public statusShouldBeTrueByDefault() {
        let instance = new SomeModule();
        
        Expect(instance.status).toBe(true);
    }
    
    @Test("Name should be null by default")
    public nameShouldBeNullByDefault() {
        let instance = new SomeModule();
        
        Expect(instance.name).toBe(null);
    }
    
    @TestCase("first name")
    @TestCase("apples")
    public shouldSetNameCorrectly(name: string) {
        let instance = new SomeModule();
        
        instance.setName(name);
        
        Expect(instance.name).toBe(name);
    }
    
}

एक पूर्ण प्रलेखन के लिए, अल्साटियन के गिटहब रेपो देखें

ची-अपरिवर्तनीय प्लगइन

  1. एनपीएम चाई, चाई-अपरिवर्तनीय और टीएस-नोड से स्थापित करें

    npm install --save-dev chai chai-immutable ts-node
    
  1. मोचा और ची के लिए प्रकार स्थापित करें

    npm install --save-dev @types/mocha @types/chai
    
  2. सरल परीक्षण फ़ाइल लिखें:

      import {List, Set} from 'immutable';
      import * as chai from 'chai';
      import * as chaiImmutable from 'chai-immutable';
    
      chai.use(chaiImmutable);
    
      describe('chai immutable example', () => {
        it('example', () => {
          expect(Set.of(1,2,3)).to.not.be.empty;
    
          expect(Set.of(1,2,3)).to.include(2);
          expect(Set.of(1,2,3)).to.include(5);
        })
      })
    
  3. इसे कंसोल में चलाएं:

    mocha --compilers ts:ts-node/register,tsx:ts-node/register 'test/**/*.spec.@(ts|tsx)'
    

फीता

टेप न्यूनतम जावास्क्रिप्ट परीक्षण ढांचा है, यह टीएपी-अनुरूप मार्कअप का उत्पादन करता है।

npm रन कमांड का उपयोग करके tape स्थापित करने के लिए

npm install --save-dev tape @types/tape

टाइपस्क्रिप्ट के साथ tape उपयोग करने के लिए आपको ग्लोबल पैकेज के रूप में ts- ts-node को स्थापित करने की आवश्यकता है, इस रन कमांड को करने के लिए

npm install -g ts-node

अब आप अपना पहला परीक्षण लिखने के लिए तैयार हैं

//math.test.ts
import * as test from "tape";

test("Math test", (t) => {
    t.equal(4, 2 + 2);
    t.true(5 > 2 + 2);

    t.end();
});

परीक्षण रन कमांड निष्पादित करने के लिए

ts-node node_modules/tape/bin/tape math.test.ts

आउटपुट में आपको देखना चाहिए

TAP version 13
# Math test
ok 1 should be equal
ok 2 should be truthy

1..2
# tests 2
# pass  2

# ok

अच्छी नौकरी, आपने बस अपना टाइपस्क्रिप्ट परीक्षण चलाया।

कई परीक्षण फ़ाइलें चलाएँ

पथ वाइल्डकार्ड का उपयोग करके आप एक साथ कई परीक्षण फ़ाइलें चला सकते हैं। tests निर्देशिका रन कमांड में सभी टाइपस्क्रिप्ट परीक्षणों को निष्पादित करने के लिए

ts-node node_modules/tape/bin/tape tests/**/*.ts

jest (ts-jest)

jest फेसबुक द्वारा पीड़ारहित जावास्क्रिप्ट परीक्षण ढाँचा है, ts-jest का उपयोग टाइपस्क्रिप्ट कोड का परीक्षण करने के लिए किया जा सकता है।

Npm रन कमांड का उपयोग करके जेस्ट स्थापित करने के लिए

npm install --save-dev jest @types/jest ts-jest typescript

इस्तेमाल में आसानी के लिए स्थापित jest वैश्विक पैकेज के रूप में

npm install -g jest

TypeScript के साथ jest काम करने के लिए आपको package.json कॉन्फ़िगरेशन जोड़ना होगा

//package.json
{
...
"jest": {
    "transform": {
      ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "moduleFileExtensions": ["ts", "tsx", "js"]
  }
}

अब jest तैयार है। मान लें कि हमारे पास परीक्षण करने के लिए नमूना फ़िज़ बज़ है

//fizzBuzz.ts
export function fizzBuzz(n: number): string {
    let output = "";
    for (let i = 1; i <= n; i++) {
        if (i % 5 && i % 3) {
            output += i + ' ';
        }
        if (i % 3 === 0) {
            output += 'Fizz ';
        }
        if (i % 5 === 0) {
            output += 'Buzz ';
        }
    }
    return output;
}

उदाहरण परीक्षण की तरह लग सकता है

//FizzBuzz.test.ts
/// <reference types="jest" />

import {fizzBuzz} from "./fizzBuzz";
test("FizzBuzz test", () =>{
    expect(fizzBuzz(2)).toBe("1 2 ");
    expect(fizzBuzz(3)).toBe("1 2 Fizz ");
});

परीक्षण रन निष्पादित करने के लिए

jest

आउटपुट में आपको देखना चाहिए

 PASS  ./fizzBuzz.test.ts
  ✓ FizzBuzz test (3ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.46s, estimated 2s
Ran all test suites.

कोड कवरेज़

jest कोड कवरेज रिपोर्टों की पीढ़ी का समर्थन करता है।

TypeScript के साथ कोड कवरेज का उपयोग करने के लिए आपको package.json एक और कॉन्फ़िगरेशन लाइन जोड़ने की आवश्यकता है।

{
...
  "jest": {
  ...
    "testResultsProcessor": "<rootDir>/node_modules/ts-jest/coverageprocessor.js"
  }
}

कवरेज रिपोर्ट चलाने की पीढ़ी के साथ परीक्षण चलाने के लिए

jest --coverage

यदि हमारे नमूने के साथ प्रयोग किया जाता है तो आप देख सकते हैं

 PASS  ./fizzBuzz.test.ts
  ✓ FizzBuzz test (3ms)

-------------|----------|----------|----------|----------|----------------|
File         |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
-------------|----------|----------|----------|----------|----------------|
All files    |    92.31 |     87.5 |      100 |    91.67 |                |
 fizzBuzz.ts |    92.31 |     87.5 |      100 |    91.67 |             13 |
-------------|----------|----------|----------|----------|----------------|
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.857s
Ran all test suites.

jest ने फ़ोल्डर coverage भी बनाया जिसमें विभिन्न स्वरूपों में कवरेज रिपोर्ट शामिल है, जिसमें उपयोगकर्ता के अनुकूल HTML रिपोर्ट शामिल है coverage/lcov-report/index.html

jest html रिपोर्ट



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow