수색…


알사스 사람

Alsatian 은 TypeScript로 작성된 단위 테스트 프레임 워크입니다. Test Cases의 사용을 허용하고 TAP 준수 마크 업을 출력합니다.

그것을 사용하려면 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);
    }
    
}

자세한 내용은 alsatian의 GitHub 레포를 참조하십시오.

챠이 불변 플러그인

  1. npm chai, chai-immutable 및 ts-node에서 설치

    npm install --save-dev chai chai-immutable ts-node
    
  1. mocha 및 chai 설치 유형

    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)'
    

줄자

테이프 는 최소한의 JavaScript 테스트 프레임 워크이므로 TAP 호환 마크 업을 출력합니다.

npm run 명령을 사용하여 tape 를 설치하려면

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

Typescript를 사용하여 tape 를 사용하려면이 실행 명령을 수행하기 위해 전역 패키지로 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

잘 했어, 방금 TypeScript 테스트를 실행했다.

여러 개의 테스트 파일 실행

경로 와일드 카드를 사용하여 여러 테스트 파일을 한 번에 실행할 수 있습니다. tests 디렉토리에서 모든 Typescript 테스트를 실행하려면 명령을 실행하십시오.

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

농담 (ts-jest)

jest 는 고통스럽지 않습니다 페이스 북의 JavaScript 테스트 프레임 워크 인 ts- jest를 사용하여 TypeScript 코드를 테스트 할 수 있습니다.

npm run 명령을 사용하여 jest를 설치하려면

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

사용의 용이성을 위해 글로벌 패키지로 jest 설치

npm install -g jest

하려면 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 은 준비되었습니다. 테스트 할 샘플 fizz buz가 있다고 가정합니다.

//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

샘플 fizz 버즈와 함께 사용하면 볼 수 있습니다.

 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/lcov-report/index.html 있는 사용하기 쉬운 html보고를 포함하여 각종 체재에있는 적용보고를, 포함하는 폴더 coverage 을 창조했다

농담 html 보고서



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow