ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 여러 테스트 프레임워크를 같이 사용할 수 있을까?
    테스팅 관련/테스트 2021. 2. 18. 01:55

     

     

    용도에 따라 적절한 툴 또는 프레임워크를 사용해야한다

     

     

    예를 들어,

    유닛 테스트기능 테스트는 본질적으로 다르다

    유닛 테스트는 코드 내의 function과 method에 직접적으로 접근할 수 있으며,

    기능 테스트는 여러 버전의 제품을 접할 수 있다

     

    → 다양한 테스트 툴/프레임워크/솔루션이 필요

     

     


    같은 Repository에 저장하는 경우

    코드와 유닛테스트는 항상 같은 Repo에 저장되어야 한다

    유닛 테스트는 소스코드에 의존

    같은 언어로 작성되어야 한다

    코드 변경이 있을 시, 유닛 테스트도 업데이트!

     

    같은 언어로 작성 & 모든 소스코드가 한 개의 Repo에 저장되어있다면,

    기능 테스트도 코드와 같은 Repo에 저장하는 것을 추천

    (함께 버전 관리 가능)

     

    다른 Repository에 저장하는 경우

    소스코드와 다른 언어로 작성된 기능 테스트

    여러 언어로 이루어진 repo는 유지 및 버전 관리가 어려움

     


     

    다양한 테스트 솔루션을 활용하는 예제

     

    Python

    모든 테스트는 "tests" 디렉토리에 있으며, 그 밑으로 "unit", "feature" 등이 추가될 수 있음

    pytest(유닛테스트)와 behave(기능테스트)는 '검색 경로' 적용 → 적절한 테스트 수행

    pytest와 pytest-bdd(기능테스트)를 사용할 경우, pytest는 테스트 필터를 위해 검색 경로 대신 'markings/tags'를 사용

     

    .NET

    .NET 프로젝트는 하나의 아티팩트에 빌드된 코드 모음이며, .NET 솔루션은 밀접하게 연관된 프로젝트 모음이다

    같은 .NET 솔루션 안에, 각 테스트 유형/스위트에 따라 독립된 프로젝트 생성

    .NET 솔루션에 NUnit(유닛테스트) 프로젝트와 SpecFlow(기능테스트) 프로젝트를 포함

     

    Java

    프로젝트 구조는 빌드 자동화 툴에 의존한다

    대부분 Java 프로젝트는 Maven 또는 Gradle을 사용

    Maven은 "src/test" 아래에 테스트가 존재하며, 각 테스트 유형은 독립된 패키지 아래에 배치

     

    JavaScript

    프로젝트 유형에 따라 테스트 위치가 달라진다

    Angular는 새로운 프로젝트를 시작할 때 각 테스트를 위한 독립된 디렉토리를 생성

    Jasmine(유닛테스트)와 Protractor(E2E테스트)를 위해 각각의 디렉토리 생성

     

     

     

     

    '테스팅 관련 > 테스트' 카테고리의 다른 글

    pytest 명령어  (0) 2021.05.02
    비기능 테스트  (0) 2021.04.11
    API 테스트  (0) 2020.09.10
    불안정(Flakey) 테스트와 예방법  (0) 2020.08.20
    JaCoCo로 적합성과 코드 커버리지 분석 평가  (0) 2020.08.14
Designed by Tistory.