2016-12-26 7 views
0

가능한 경우 Pex/Intellitest가 가능한 경로 조건을 찾도록 강제 할 수 있습니까? 나는 PC에 그 PC를 보여줘야 해. pexfonfun/visualstudio 2015에서는 몇 대의 PC 만 볼 수 있습니다. 예를 들어, 실행할 수없는 PC는 표시되지 않습니다.Pex : 모든 경로 조건 (PC)을 얻는 방법?

1) i != 12 && i != 15; 
2) i == 15; 
3) i == 12; 

public static int foo(int i){ 
    int a = 1; 
    if(i == 12) 
     a = 1; 
    if(i == 15) 
     a = 2; 
    return a; 
} 

왜 내가! "전 = 12 & & 내가 == 15"얻을 해달라고 : 다음 예에서

내가 3 PC를 얻을?

감사합니다. :)

답변

1

>> 왜 내가 "i! = 12 & & i == 15"가되지 않습니까?

IntelliTest는 높은 적용 범위로 압축 테스트 스위트를 생성하려고합니다. 예를 들어,이 3 개의 PC가 코드의 모든 블록을 덮을만큼 충분하다는 것을 알 수 있습니다. 따라서 IntelliTest는 지금 중지 할 수 있다고 결정합니다. 다음이 더 설명 IntelliTest 참조 설명서에서 몇 가지 관련 부분은 다음과 같습니다

  1. 가 IntelliTest 데이터를 생성하는 방법을 보려면는 여기를 참조하십시오 IntelliTest는 테스트 케이스를 방출하기로 결정 때 https://www.visualstudio.com/en-us/docs/test/developer-testing/intellitest-manual/input-generation
  2. 를 보려면, 제발 여기를 참조하십시오 : https://www.visualstudio.com/en-us/docs/test/developer-testing/intellitest-manual/test-generation

이 매뉴얼을 개선 할 수있는 방법을 알려주십시오.

좋아, 지금 말했듯이, IntelliTest는 모든 PC를 생성 할 수 있습니다 (새로운 코드 경로를 사용하지는 않지만). 다음과 같이하십시오.

  1. "IntelliTest 실행"을 수행하십시오.
  2. 탐색 결과 창에서 모든 테스트를 선택하고 저장 버튼을 누릅니다. 새로운 테스트 프로젝트가 생성됩니다.
  3. 이 테스트 프로젝트에서 PUT을 찾으십시오. PexMethod 속성이있는 메소드가됩니다. ([PexMethod(TestEmissionFilter = Microsoft.Pex.Framework.Settings.PexTestEmissionFilter.All)]
  4. 는 이제 PUT 또는 제품 방법에 중 다시 "실행 IntelliTest"할, 당신은 추가 PC를 볼 수 :
  5. 조건 IntelliTest 더 많은 PC를 생성하고 다음과 같이 PexMethod 속성을 업데이트하여 테스트를 방출합니다 요약 메시지로 "중복 경로"사용). 원하는대로 EmissionFilter 설정을 시험해보십시오.
+0

위대한! 매우 감사합니다! :) – Kirito

+0

나는 이것에 대해 많은 것을 알고있다. 왜 pex가이 표현을 PC에서 생성하는지 안다. return (4294967294u | 1u^(var.hasValue? (byte) 1 : (byte) 0)) == uint.MaxValue; 이것은 "var"를 정수로 사용하여 aritmetic 연산에서 발생합니다. 변하기 쉬운. 예제 (int 타입의 var) : ** int? ret = 0; ret + = var; return 0; ** – Kirito

+0

전체 방법 본문을 공유 할 수 있습니까? 좀 봐봐. – pvlakshm