David Tchepak
그는 물었다 12년 전
20

단위 테스트 실행 속도 (초당 시용되는 테스트를?)

어떤 종류의 엑서큐션 전송률인 유닛 테스트 (# 테스트 per second) 를 목표로 하고 있습니까? 너무 오래 테스트요 개별 단위 테스트?

39; d 사람들이 관심을 갖게 될 경우 특정 임계값에 i& vmnet 판단하기 위한 테스트 결과가 너무 느리고, 아니면 그냥 그 때 보다 더 긴 마찰 호스팅하면서 test suite 거짓말엔?

마지막으로, 테스트를 할 때 어떤 기법을 사용하고 있는가 하는 구체적인 실행 속도가 빠르며 단축할 테스트?

  • 참고: 통합 테스트 결과가 분명히 다시 좀 다른 문제다. 우리는 엄격히 실행해야 하는 대로 자주 possible.* 스토리지스코프는 유닛 테스트

지금까지 roundup:* 반응 = 위대한 응답 주셔서 감사합니다. 대부분의 조언을 don& 걱정 집중할 것으로 보인다 - t # 39, 그냥 그 품질과 속도가 너무 느려 슬래시나 선택적으로 실행하십시오 답변 &lt 키프레임과 1 초, 10ms 최대 목표로 구체적인 수치는 함께 포함되어 있다 (0.5) 에서 테스트 제품군을 유지 실행하십시오 테스트당 가공할지, 일반적으로 10 초.

39 한 표시됨과 &quot 표시할 수 있을지는 잘 모르겠다;; 수락됨 answer&quot it& 옳다. # 39 they& 때, re all 도움됐네:)

Jeffrey Fredrick
그는 12년 전 댓글을 달았습니다
0

1 초 테스트당 실현할 수 있는 점 때문에 이를 서라고 it all the time test suite 금방 기분이 너무 느려. # 39, ll 실행하십시오 억/초 you& 실행할 수 있는 경우 100 테스트 suite 있을 때보다 훨씬 더 자주 걸리는 100 배 가량 된다.

답변 11 개

두 번째 유닛 테스트 할 수 있는 모든 실행하십시오 따라 (즉 모든 단위 테스트를 실행해야 하는 결합됨 1 초에). 이제 정말 이 있지만, 실질적인 제한값 I& # 39 는 I& # 39 m, 1000년 테스트를 가진 사업을 랩톱에서 파르게 실행하십시오 숨기지 않았다. 따라서, 이 속도는 you& # 39, ll 정녕 don& # 39, 일부 개발자들이 t 운명의 리팩토링 핵심부품인 모델 (즉, 몇 분 후, 그는 이 동안 내가 가서 커피 께요 실행하십시오 않했노라 tests.10 뒤로를).

이 요구 사항도 docname 제대로 응용 프로그램을 설계할 수 있습니다. 순수한 있으며 해당 도메인 모델을 무슨뜻이냐믄 제로 참조입니다 어떤 종류의 지속성 (File I / O, 데이터베이스 등). 유닛 테스트 모두 테스트에 대한 이러한 비즈니스 레이턴시프스.

그럼 너는 이제 doesn& # 39, 데이터베이스 또는 지속성 무시 테스트하는 것이다. 그러나 이러한 문제를 해결할 수 있는 통합 테스트를 통해 별도로 테스트되었습니다 이제 격리됨 리포지토리를 뒤에 있는 별도의 프로젝트. 유닛 테스트 코드를 작성할 때 실행한 끊임없이 다음도메인 실행하십시오 한 번 테스트 및 통합 작업에 체크인합니다.

Community
Nilzor
그는 9년 전 댓글을 달았습니다
16

어떤 언어, 컴파일러 및 테스트하려면 engine 사용하고 있습니까? i have a 는 초당 1000년 테스트를 미친 조절이 힘든 시간을 보다 4 번째 시험 / / C # 의 비주얼 스튜디오 2010년.

Niall Connaughton
그는 7년 전 댓글을 달았습니다
0

의심이 있는 인기 있는 선수들 (haven& # 39, t 찾아 보았습니다 대비성) VS don& # 39 에 최적화 테스트, 많은 노력을 동일팔레트에 따라 속도를 없다. 두 번째 4 테스트 속도가 매우 느립니다. # 39, re you& 갈 경우, 다양한 테스트를 통해 가입자 이탈을 연결한 대형 원하는걸까요 초당 수백 수 있습니다. 그 두 번째 대규모 개발 프로젝트를 진행하는 데 필요한 모든 실행 가능한 아닙니다.

Tvde1
그는 일 년 전 댓글을 달았습니다
0

우린 그냥 2 시간 6 분 대신 테스트를 위한 실행하십시오 경미함 변경하는 것 "이라고 했다. 지금 내가 보고 있는 사람이 있으면 더 빨리, 더 강해 작동합니까 테스트는 약간만이라도 구성 요소에 대한!

39 we& 경우, re 스토리지스코프는 유닛 테스트, aim # 39 보다 엄격하게 I&; d 완전성을 위해 더 많은 인기를 얻었다. 실행 시간 마찰을 일으킬 경우, 프로젝트 시작 / classes 등 여러 경로로 분리하십시오 테스트 테스트 실행하십시오 관련된 어떤 you& # 39, 단, re working on. 이 실험을 그만 통합 서버 모두실행 체크인.

목표는 초당 수백 개의 테스트. The way you get there 는 다음과 같은 마이클 Feather& # 39 의 [rules of 유닛 테스트] [1].

중요한 점은 다가와 있는 과거 케이컨 의 경우, 이 것은 상당히 빠른 테스트 토론 에로남이네 aren& # 39 t, t # 39 의 유닛 테스트를 받고 있는 디자인 aren& 가능성이 있습니다.

[1]: http://www.artima.com/weblogs/viewpost.jsp = 126923 스레드할?

데이터 포인트 - Python 회귀 테스트

다음은 숫자임 on my 랩톱에서 &quot 실행하기 위한 할 test"; 위한 파이썬 2.5.2:

  • 많은 테스트: 3851 (약)
  • 실행 시간: 9 분 6 초
  • 실행 속도: 7 시험 / sec

39, re 현재 we& fas250/270 테스트를 수립하였습니다 3.something 초짜리입니다. 아마도 약 8 가지 테스트를 수행하는 파일 입출력 (i / o).

이들은 모든 엔지니어는 기계에 대한 성공적인 구축 시 자동으로 실행하십시오 우리 라이브러리보다는 우리는 보다 광범위한 (및 시간이 많이 걸리는) 에서 매일 밤 수동으로 시작해야 할 수 있는 시스템을 구축, 또는 순종하나이다 테스트 완료되어도 협력하였습니다 엔지니어가 시스템입니다.

39 볼 수 있듯이, 우리가 아직 시간이 너무 많이 드는 문제를 도달했음 haven& t 테스트 중입니다. 이 때문에 10 초 가져다줄래요 권부라는 것이 하나님이 시작할 수 있는 지점에 외곽진입 it& # 39, 뭔가 we& # 39, ll take a look at 될 겁니다. # 39, ll we& 가능성이 있기 때문에 자주 갖고 있으며, 더 낮은 레벨의 라이브러리를 움직이십시오 더욱 강력한 변경하십시오 몇 종속물, 야간 구축, 또는, re 디렉토리에만 they& # 39 에 의해 실행되기 머시닝할 구축하십시오 구성입니다.

39 를 취하고 it& 찾을 수 있다면, 몇 초 이상 100 여개의 테스트 실행하십시오 무엇인지를 검토할 틀렸다니까 하나의 단위로 분류 할 수 있습니다 취급을 순종하나이다 테스트 테스트 및 인스턴스인지 낫겠다.

지역에 따라 매우 분명히 너회의 마일리지 불지옥으 가변적입니다 개발.

난 내 속도 테스트를 가독성을 비해 좀 더 집중할 수 있다. 하지만 난 아직도 합리적으로 설명할 수 있도록 빠른. 만약에 그들이 run on the order of 밀리초입니다, 틀렸다니까 좋았소 두 번째 또는 그 이상의 슬래시나 실행하십시오 테스트당. 그럼 최적화합니다 일을 할 수 있습니다.

느린 테스트 전용 시스템과 성숙 및 이 문제가 되고, 몇 시간이 걸릴 가능성이 더 높다는 점을 emc. 제작식 틀렸다니까 에 대한 문제로 많은 종류의 테스트가 아닌 느린 실행할 수 있는 테스트 최적화합니다 1 개 또는 2 개 있습니다. 이렇게 많은 관심을 보이면 바로 실행하는 테스트를 합니다 아마도 수백 밀리초입니다 각각 (또는 그, 초 각) 보다는 수백 테스트를 위해 오랜 시간을 기다려 it gets 인도되니 등의 포인트 (dell. 점을 정말 열심히 문제를 해결할 수 있을 것입니다).

그렇게 사이의 시간을 크게 줄일 수 있을 뿐, 그렇지 않을 경우 자동 빌드 문제에 오류가 발생했습니다. 이 경우 확인을 한 시간 후에 (심지어 몇 시간 뒤) 될 것 같습니다. 하지만 이 문제는 그 체크인합니다 선택하여 실행 전에 회피할 수 있는 작은 서브셋에 실행하십시오 너희는너희가 관련된 테스트를 진행하고 있다. 그냥 smartupdate 해결할 수 있도록 끊는 didn& # 39, t 테스트 코드를 실행할 경우 구축하십시오 체크인합니다 있습니다!

    • 실행하십시오 대한 규칙 중 가장 중요한 것은 빠른 유닛 테스트 한다.

&gt. 너무 오래 테스트요 개별 단위 테스트?

개발사가 실행할 수 있는 분, 초, 전체 유닛 테스트 제품군을 말해둘꼐요 없는 분입니다. 개발자가 코드를 변경하면 빠르게 실행할 수 있어야 한다는 겁니다. 너무 오래 걸리는 경우, 그 수는 없는 노릇, 그들 중 하나를 패배하셨습니다 won& # 39 를 주요 이점은 테스트.

&gt. 어떤 종류의 엑서큐션 전송률인 유닛 테스트 (# 테스트 per second) 를 목표로 하고 있습니까?

각 테스트마다 aim 합니다 에서 실행할 가능성이 너무 테스트 1 초 이상 밀리초입니다 뭐든 목이다.

30 초 이내에 실행하십시오 갖추고 있는 약 800 초당 약 27 테스트 테스트. 여기에는 실행하십시오 실행하는 데 필요한 시간을 모바일 에뮬레이터이고 저들이요 대부분 각 시행하십시오 0 5ms (if i remember 제대로).

우리는 하나 또는 두 개 있으며, 아마도 3 초 정도 걸릴 수 있는 후보, 검사, 그러나 중요한 것은 이렇게 오래 걸릴 것이 전체 test suite doesn& # 39 는 개발자들이 t, t # 39 를 오프하도록 정보기술 (it), doesn& 크게 둔화될 lionbridge 지속적 통합 형태.

또한, 5 초) 로 구성할 수 제한 시간 - 아무 것도 더 많은 시간이 걸리는 실패합니다.

자동 실행 제공하십시오 특정 유닛 테스트 등 일부 프레임워크와도 휴리스틱 따라 최종 수정 하게하면서요. 루비 · 레일, 오토레스트 는 위한 테스트 중 - 레일 모형 '을 저장할 때 내가 훨씬 빠르고 응답성의 엑서큐션 app/models/foo.rb', '' 에 해당하는 유닛 테스트 test/unit/foo_test.rb 프레젠테이션이든 실행하십시오.

39 가 있지만, 내가 모르는 don& 뭔가있다면 비슷한 다른 플랫폼에 대한 만들 것이라고 한다.

&gt. 개별 테스트요 너무 깁니다. &gt. unit test?

D # 39 라고 컴파일하십시오 속도용 i& 따라 다릅니다. 보통 한 컴파일하십시오 수명주기의 모든 테스트를 실행합니다. 유닛 테스트 메시지를 재연됩니다 수밖에 없는 것을 목표로 둔화될 것으로 &quot 줄바꿈할 http://www. gnu. on&quo , 아무것도아니야. (또는 &quot STOP&quo , 뭔가 깨고,).

이는 전혀 느끼지 않을 때까지 나는한다 대한 테스트 실행 속도 생각하신거야 프레젠테이션이든 짜증나게.

39, re 는 중지되기를 테스트 실행 속도가 너무 느려 they& 때문에 위험에 처하게 된다.

&gt. 마지막으로, 구체적인 테스트 작업을 할 때 &gt. 어떤 일을 실행하는 데 필요한 기술을 빠르게 &gt. 속도를 높이기 위해 사용하는 사용자 테스트를?

그들은 너무 느리고, 이유를 찾기 위해 최우선적으로 해야 할 것은 관리할 수 있는 문제는 유닛 테스트 테스트 대상 및 거세한 숫양 가능 또는 코드

39 테스트 suite 를 논리 부품을 분할하려면 시도하시겠습니까 i&; d 여러 가지 부품만 호스팅하면서 영향을 받는 것은 아마도 코드를 변경할 때마다 내가 컴파일하십시오. # 39, d, 아마도 다른 제품을 하루에 한 번 i& 실행하십시오 횟수를 줄일 수 있을 때, 또는, 적어도 내가 전에 뭔가 의심스러운 줄바꿈할 통합되므로 .

There was a [좋은 글] 에서 1UnitTest++ 의 게임, 저자는 이 두 가지.

난 내 유닛 테스트 실험을 바탕으로 심판을 테스트당 # 으로 가 아닌 초당. 내가 500ms 이하의 속도 목표로 하고 있다. 위의 경우, 내아기마저도 들여다 볼 수 있는 테스트 이유를 찾기 위해 it 이렇게 오래 걸려.

테스트는 일반적으로 생각이 늦추기 위해 하는 것은 너무 심하다. 따라서 이 테스트를 더 일반적으로 그냥 리팩토링 테스트 분할하여 분할하고 산아래의 트릭. 나는 내 다른 배에 테스트 테스트 코드를 실행하는 것을 그 때 내 느린 리팩토링 코드는 주문하십시오 병목 현상을 보여주고 있다.