C #에서는 단위 테스트 피드백 루프를 개선하는 좋은 방법이란 무엇입니까?

StackOverflow https://stackoverflow.com/questions/8987893

  •  13-11-2019
  •  | 
  •  

문제

더 큰 프로젝트에서 작업 할 때 유닛 테스트 프레임 워크를 컴파일하고 시작하려면 최소 10 초가 걸릴 수 있습니다.피드백 루프 시간을 줄이는 효과적인 방법이 있습니까?본인은 한 단위 테스트 클래스에서 작은 변화를 만들고 테스트 실행 간의 다른 클래스를 만들 것입니다.

나는 다른 접근법을 고려했다.나는 단일 테스트 클래스와 종속성을 컴파일하고 실행할 수있는 방법이 보이지 않습니다.각 어셈블리가 컴파일 할 시간이 적지 만 다른 문제가 발생할 수 있도록 솔루션의 프로젝트 수를 늘릴 수 있습니다.NCrunch는 테스트를 수동으로 실행할 필요가 없지만 여전히 전체 어셈블리를 컴파일합니다.

설명 : 10 초 동안 테스트 클래스와 테스트중인 클래스를 컴파일하는 데 시간이 포함됩니다.ncrunch와의 나의 문제는 덜 강력한 컴퓨터로 인해 왔을 수 있습니다.

도움이 되었습니까?

해결책

각 테스트 클래스를 별도의 어셈블리에 넣어야합니다. 어셈블리가 효과적으로 컴파일 단위입니다. 을 다시 컴파일하는 데 10 초가 걸리는 경우 테스트 클래스의 변경 사항을 하나의 어셈블리에 너무 많이 테스트 한 테스트가 있거나 매우 느린 컴퓨터가 있음을 알 수 있습니다. 더 나은 기계를 얻는 것이 좋을 수도 있습니다 (또는 더 많은 메모리 또는 SSD를 가진 기존 하나를 개선하는 것은 가장 좋은 방법입니다.

나는 ncrunch를 사용하고, 여전히 완전한 어셈블리를 컴파일하지만, 백그라운드에서 그것을하는 것은 일반적으로 정신적 숨을 겪었던 시점까지, 테스트가 재건되고 달리고 있다는 것을 의미합니다. NCrunch는 여러 프로세서와 Ramdisk를 가지고있는 경우 잘 작동합니다. 빌드가있는 곳을 설정할 수 있으며 사용할 수있는 프로세서 수를 설정할 수 있습니다.

ncrunch (또는 mighty moose 등)을 고려하면 유사한 것들 ) 그러나 실제로 시도하지는 않지만, 당신은 그것이 당신을 위해 충분히 빠르지 않을 것이라고 가정하기 전에 그것을 주어야합니다.

다른 팁

"Nofollow"> AutoTest.net 코드를 작성할 때 백그라운드에서 장치 테스트를 실행합니다.

이렇게하면 컴파일러 오류 / 경고와 같은 유닛 테스트를 더 많이 처리하고 비교적 실시간 피드백을 얻을 수 있습니다.

선언적 단위 테스트는 컴파일 시간을 효과적으로 제로로 제로로 낼 수 있지만 아키텍처가 허용되는 경우에만.예를 들어 단위 테스트를 대규모 프로젝트에서 데이터베이스로 이동하여 잘 작동했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top