2017-09-13 9 views

답변

1

parasoft는 평판이 좋은 주제는 아닙니다. 답변은 금색의 가치가 있습니다. 나는 cpptesttrace를 찾을 수 없었다. cpptest 및 cpptestscan이 있습니다. 그들이 될 수 있을까요? parasoft의 이전 버전을 사용합니다.

정확합니다. 'cpptesttrace'는 Parasoft C++ 테스트 버전 9.4 (2012 년 중반)에 추가되었으므로 'cpptestscan'만있는 버전 9.2 이하를 사용하고있을 가능성이 큽니다.

BTW, 여기에 C++ 테스트 독립형 설치 (안 비주얼 스튜디오 플러그인) 내부 프로그램의 빠른 설명입니다

  • 인 CppTest는 - C++ 테스트 GUI 시작 (Eclipse 기반) 일반적으로 대화 형 작업 데스크탑
  • cpptestcli - 정적 분석을 자동화하는 데 사용되는 C++ 테스트 명령 줄 드라이버, 예. 하는 젠킨스 작업으로
  • cpptestscan을 실행 - 명령 줄 컴파일러 접두사로 사용하는 것은 하나의 컴파일 정보를 수집하고 정보 파일 BDF에
  • cpptesttrace를 추가합니다 - (이후 Parasoft C++ 시험 9.4) 접두어로 사용

    • cpptestscan 각 컴파일 명령 행 앞에 추가해야했습니다 : 명령 줄을 구축

    cpptestscan과 cpptesttrace 사이의 주요 차이점을 정보 파일 BDF의 모든 컴파일 명령을 캡처하고 저장하는 것입니다. 즉, cpptestscan은 단일 컴파일 만 캡처하여 한 번에 하나씩 BDF에 저장할 수 있습니다. 이것은 일반적으로 make CC 또는 CXX 변수를 덮어 쓰는 방법으로 수행되었습니다 (예 : "cpptestscan g ++ -c foo.c -o foo.o").

  • cpptestrace는 전체 빌드 명령 앞에 한 번 붙여야하며 빌드 명령에 의해 호출 된 하위 프로세스를 추적합니다. 컴파일러 호출로 인식 된 모든 프로세스의 기록은 BDF에 저장되었습니다.

makefile 또는 빌드 스크립트가 명령 줄에서 컴파일러를 덮어 쓸 수있을 정도로 유연한 경우 cpptestscan이 좋습니다.

make CXX="cpptestscan g++" CC="cpptestscan gcc" 

일반적으로 메이크 기반 프로젝트에서 가능합니다. 맞춤 또는 자동 생성 빌드 스크립트의 경우 모든 베팅이 해제됩니다. 종종 유일한 옵션은 사람들이 보통 걱정하는 프로젝트 빌드 스크립트를 수정하는 것이 었습니다. 그런 경우 cpptesttrace는 완전히 방해가되지 않으며 거의 ​​모든 빌드 프로세스에서 빌드 정보를 캡처 할 수 있기 때문에 도움이됩니다. 여러 프로젝트가 있다면

,이 게시물의 원래의 질문으로 돌아 간다 : cpptestscan를 사용

  • 을, 당신은 BDF
  • 해당 만드는 각 프로젝트 '빌드 스크립트에서 cpptestscan와 어떻게 든 접두사 컴파일러에 필요
  • cpptesttrace를 사용하면 각 프로젝트의 빌드를 실행하여 각 프로젝트의 빌드 명령 앞에 추가하여 해당 BDF를 생성 할 수 있습니다. 후자는 더 쉽지만 최신 C++ 테스트가 필요합니다 (최신 버전은 10.3 임).

도움이 되었기를 바랍니다. BTW : C++ 테스트를 업그레이드 할 수 있는지 Parasoft에 확인하십시오.

+0

고마워. 이 설명들은 나를 깨우쳐 주었다. – Alperen

+0

Parasoft를 사용하는 프로젝트가 2 개 있습니다. 귀하의 대답은 두 가지 모두에 도움이됩니다. 하나는 완벽하게 작동하지만 다른 하나에는 문제가 있습니다. 그것은 여전히 ​​실패하고 일부 파일에서 구문 분석 오류를 제공합니다. 나는 그 파일들을 조사한 결과 공통적으로 같은 헤더가 모두 포함되어 있다는 것을 알았지 만 Parasoft IDE는 "Unresolved inclusion"오류를 제공합니다.이 프로젝트는 자체 IDE에서 올바르게 빌드됩니다. 그리고이 빌드 프로세스에 의해 생성 된 bdf 파일을 사용했습니다. 이 공통 헤더 파일이 포함 디렉토리에 있기 때문에 빌드 프로세스가 자체 IDE에서 올바르게 작동합니다. 왜 그게 효과가 없습니까? – Alperen

+0

또한 bdf 파일에 관련된 include 디렉토리를 볼 수 있습니다. 그리고이 헤더 파일에는 간단한 정의로 구성되어 있기 때문에 C 파일이 없습니다. 그 이름이 "asd.h"라고하면, bdf 파일에 "asd.o"단어가 없습니다. – Alperen

0

make 파일 사용은 필수는 아닙니다. Parasoft C++ 테스트에는 빌드 프로세스를 모니터링하고 컴파일러 호출을 수집하여 BDF 파일을 만드는 'cpptesttrace'이라는 도구가 있습니다.
cpptesttrace는 모든 빌드 프로세스에서 사용할 수 있으며, 만들거나, 쉘 스크립트로 만들거나 IDE에서 빌드 할 수 있습니다 (명령 줄 빌드를 사용할 수없는 경우 마지막 수단). cpptesttrace 작동 방식

:

  • 는 단순히
  • 다시 전체 실행해야합니다 일반 빌드 'cpptesttrace'그리고 아마도 몇 가지 옵션을 원래 빌드 명령 줄을 앞에하고 실행해야합니다 (예 : 'make clean all') BDF에 빌드에 속한 모든 소스에 대한 정보와 컴파일 방법에 대한 정보가 포함되어 있는지 확인하십시오.
  • cpptesttrace에는 지원되는 컴파일러 세트가 내장되어 있으며 'cpptesttrace --cpptesttraceHelp '. GNU GCC 컴파일러 이름이 "비정상"인 경우 cpptesttrace가 찾는 패턴을 다시 정의 할 수 있습니다. 문제의 경우
  • , 당신은 항상

예 1 Parasoft 지원에 문의 할 수 있습니다 :

내가 메이크 파일 예 : 줄 것이다, 그러나 그것은 SCons는, 잼, 또는 Python 스크립트가 될 수 또는 .BAT : cpptesttrace를 사용하여, 다음과 같이

make clean all 

나는 빌드를 실행할 수 있습니다 : 내 전체 빌드는 다음과 같이 이루어집니다, 가정 cpptesttrace make all clean 전체 빌드를 모니터링하고 실행에서 BDF 파일을 만듭니다.

예 2 : 빌드 스크립트와 다단계 프로세스 또는 길을 따라 변화하는 폴더를 만들 경우

, BDF의 절대 위치 cpptesttrace에게 좋은 수 있습니다. 위의 예제를 확장, 우리가 실행할 수 : BDF 경로가 절대 있는지 확인합니다

cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf make clean all 

을, 소스 트리 레벨 cpptesttrace가 호출되는에 상관없이.

+0

답장을 보내 주셔서 감사합니다. parasoft는 평판이 좋은 주제는 아닙니다. 대답은 금의 가치가 있습니다. 나는 cpptesttrace를 찾을 수 없었다. cpptest와 cpptestscan이 있습니다. 그들이 될 수 있을까요? parasoft의 이전 버전을 사용합니다. – Alperen